Изменить размер заголовка осей и меток в ggplot2

У меня действительно простой вопрос, на который я пытаюсь найти ответ. Я надеялся, что кто-то здесь сможет мне помочь.

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

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

Я просто хочу узнать, как изменить размер текста названий осей и меток осей.

Ответ 1

Вы можете изменить текст оси и размер метки с помощью аргументов 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"))

Есть хорошие примеры настройки разных параметров theme() в странице ggplot2.

Ответ 2

Я думаю, что лучший способ сделать это - изменить аргумент base_size. Это будет увеличивать размер текста последовательно.

g + theme_grey(base_size = 22)

Как видно здесь.

Ответ 3

Если вы создаете много графиков, вы можете устать набирать для каждого графика строки кода, управляющие размером заголовков и текстов. Обычно я создаю объект (класса "theme" "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)))