Змінення розміру заголовка осей та міток у ggplot2


146

У мене справді просте запитання, на яке я намагаюся знайти відповідь. Я сподівався, що хтось тут може мені допомогти.

Приклад фрейму даних представлений нижче:

a <- c(1:10)
b <- c(10:1)
df <- data.frame(a,b)
library(ggplot2)
g = ggplot(data=df) + geom_point(aes(x=a, y=b)) +
  xlab("x axis")
g

Я просто хочу дізнатися, як я змінюю розмір тексту заголовків осей та міток осей.

Відповіді:


313

Ви можете змінити текст осі та розмір мітки за допомогою аргументів axis.text=та axis.title=у функції theme(). Якщо вам потрібно, наприклад, змінити лише розмір заголовка осі x, тоді використовуйте axis.title.x=.

g+theme(axis.text=element_text(size=12),
        axis.title=element_text(size=14,face="bold"))

На сторінці ggplot2 є хороші приклади налаштування різних theme()параметрів .


8
Зараз є і дуже інтуїтивна функція rel(). напр.size = rel(2.0)
HongboZhu

2
як би змінити labs(x = "x axis")розмір тексту, не змінюючи значення клітинок осі x?
baxx

53

Я думаю, що кращий спосіб зробити це - змінити base_sizeаргумент. Це збільшить розміри тексту послідовно.

g + theme_grey(base_size = 22)

Як видно тут .


5
Якщо у вас вже є інші themeвипадки, це може спричинити конфлікти.
Адам Еріксон

10

Якщо ви створюєте багато графіків, ви можете втомитися вводити для кожного графа рядки коду, що контролюють розмір заголовків та текстів. Зазвичай я створюю об'єкт (клас "тема" "gg"), який визначає бажані характеристики теми. Це можна зробити на початку коду.

My_Theme = theme(
  axis.title.x = element_text(size = 16),
  axis.text.x = element_text(size = 14),
  axis.title.y = element_text(size = 16))

Далі, все, що вам потрібно буде зробити, - це додати My_Theme до своїх графіків.

g + My_Theme
якщо у вас є інший графік, g1, просто напишіть:
g1 + My_Theme 
і так далі.

4

Змінити розмір (майже) усіх текстових елементів в одному місці та синхронно rel()досить ефективно:
g+theme(text = element_text(size=rel(3.5))

Ви можете трохи змінити число, щоб отримати оптимальний результат. Він встановлює як горизонтальну, так і вертикальну осі мітки та заголовки та інші текстові елементи в одному масштабі. Одним винятком є ​​заголовки гранованих сіток, які повинні бути вручну встановлені на одне значення, наприклад, якщо в графіку використовуються як грані x, так і y:
theme(text = element_text(size=rel(3.5)), strip.text.x = element_text(size=rel(3.5)), strip.text.y = element_text(size=rel(3.5)))

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.