在ggplot2中更改轴标题和标签的大小


145

我有一个非常简单的问题,我一直在努力寻找答案。我希望这里有人可以帮助我。

下面是一个示例数据框:

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

我只想学习如何更改轴标题和轴标签的文本大小。

Answers:


313

您可以使用arguments axis.text=axis.title=in function 更改轴文本和标签大小theme()。例如,如果需要,仅更改x轴标题大小,然后使用axis.title.x=

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

theme()ggplot2页面中有关于设置不同参数的好示例。


8
现在还有一个非常直观的功能rel()。例如size = rel(2.0)
HongboZhu

2
如何在更改x轴刻度值的情况下更改labs(x = "x axis")文本大小?
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)))

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.