繁体   English   中英

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

[英]Change size of axes title and labels in 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

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

您可以使用函数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()参数的很好的例子。

我认为更好的方法是更改base_size参数。 它会不断增加文本大小。

g + theme_grey(base_size = 22)

这里所见。

如果您要创建许多图形,您可能会厌倦为每个图形键入控制标题和文本大小的代码行。 我通常做的是创建一个定义所需主题特征的对象(类“主题”“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
等等。

要在一个地方同步更改(几乎)所有文本元素的大小, 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)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM