ChatGPT解决这个技术问题 Extra ChatGPT

更改 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

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


s
shir

您可以在函数 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 轴刻度的值?
c
chunjiw

我认为更好的方法是更改 base_size 参数。它将持续增加文本大小。

g + theme_grey(base_size = 22)

here 所示。


如果您已有其他 theme 实例,这可能会导致冲突。
@AdamErickson 是的,所以您只需将 base_size = 22 添加到您选择的主题中即可。
R
Rtist

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

这是最好的答案,imo。与预设主题不会有很多(如果有的话)冲突。
I
InterestedInR

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅