更改 ggplot2 中轴标题和标签的大小
Posted
技术标签:
【中文标题】更改 ggplot2 中轴标题和标签的大小【英文标题】:Change size of axes title and labels in ggplot2 【发布时间】:2013-02-03 06:14:41 【问题描述】:我有一个非常简单的问题,我正在努力寻找答案。我希望这里有人可以帮助我。
一个示例数据框如下所示:
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】:您可以在函数theme()
中使用参数axis.text=
和axis.title=
更改轴文本和标签大小。例如,如果您需要仅更改 x 轴标题大小,则使用 axis.title.x=
。
g+theme(axis.text=element_text(size=12),
axis.title=element_text(size=14,face="bold"))
在ggplot2 page中有设置不同theme()
参数的好例子。
【讨论】:
现在还有一个很直观的功能rel()
。例如size = rel(2.0)
如何改变labs(x = "x axis")
文本大小不改变x轴刻度的值?【参考方案2】:
我认为更好的方法是更改 base_size
参数。它将持续增加文本大小。
g + theme_grey(base_size = 22)
如here所见。
【讨论】:
如果您已经有其他theme
实例,这可能会导致冲突。
@AdamErickson 是的,所以您只需将 base_size = 22
添加到您选择的主题中......【参考方案3】:
如果您要创建许多图表,您可能会厌倦为每个图表键入控制标题和文本大小的代码行。我通常做的是创建一个定义所需主题特征的对象(属于“主题”“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
等等。
【讨论】:
这是最好的答案,imo。与预设主题不会有太多(如果有的话)冲突。【参考方案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)))
【讨论】:
以上是关于更改 ggplot2 中轴标题和标签的大小的主要内容,如果未能解决你的问题,请参考以下文章