Изменить размер заголовка осей и меток в 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)))