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

KT_*_*T_1 122 r 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
Run Code Online (Sandbox Code Playgroud)

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

Did*_*rts 274

您可以使用参数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"))
Run Code Online (Sandbox Code Playgroud)

关于theme()ggplot2页面中设置不同参数的例子很好.

  • 现在还有一个非常直观的函数[`rel()`](https://www.rdocumentation.org/packages/ggplot2/versions/2.1.0/topics/rel).例如`size = rel(2.0)` (6认同)
  • 如何更改 `labs(x = "x axis")` 文本大小*而不*更改 x 轴刻度的值? (3认同)

chu*_*jiw 39

我认为更好的方法是改变base_size论点.它将始终如一地增加文本大小.

g + theme_grey(base_size = 22)
Run Code Online (Sandbox Code Playgroud)

可以看出这里.

  • 如果您已经有其他`theme`实例,则可能导致冲突。 (3认同)
  • @AdamErickson是的,所以你只需将 `base_size = 22` 添加到你选择的主题中。 (2认同)

Rti*_*ist 6

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

接下来,您要做的就是将My_Theme添加到图形中。

g + My_Theme
Run Code Online (Sandbox Code Playgroud) 如果您还有另一个图形g1,只需编写:
g1 + My_Theme 
Run Code Online (Sandbox Code Playgroud) 等等。


小智 5

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