使用fivethirtyeight ggtheme将ylab添加到ggplot

11

如果您正在使用theme_fivethirtyeight,是否可以向y轴添加标签? 我尝试了ylab但是它不起作用:

在使用theme_fivethirtyeight时,是否可以向y轴添加标签?我已经尝试过ylab,但它没有生效:

library(ggplot2)
library(ggthemes)
p2 <- ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(gear))) +
  geom_point() +
  ggtitle("Cars")
p2 + geom_smooth(method = "lm", se = FALSE) +
  scale_color_fivethirtyeight("cyl") +
  theme_fivethirtyeight() + ylab('SOMETHING')

在此输入图片描述

1个回答

16

你可以这样做,但需要比使用 ylab 更多的工作量,因为你需要改变一些在 theme_fivethirtyeight 中默认的 theme 设置。如果你查看 theme_fivethirtyeight 的代码(只需在控制台中运行 theme_fivethirtyeight 即可查看代码),你会发现 axis.title 被设置为 element_blank()。因此,这个主题根本没有轴标题。如果你想设置 y 轴标签,你需要改变这个设置。

例如,你可以添加:

theme(axis.title = element_text()) + ylab('Something')

如果您将标题添加到您的图表中,则会得到一个x轴标签。

另一种选择是使用

theme(axis.title = element_text(), axis.title.x = element_blank()) + ylab('Something')

这里输入图片描述

由于axis.title.y继承自axis.title,所以仅仅将axis.title.y设置为element_text()是无效的。


1
或者全局设置,使用类似 theme_update(axis.title = element_text()) 的方式(在使用 theme_set 全局设置主题后)来启用 x 和 y 标签。 - JJJ
谢谢!我也遇到了同样的问题,这个问题是关于theme_excel_new()函数的,它也来自ggthemes库。 - William Spagnola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接