如何在ggplot2中创建类似于theme_bw的自定义主题?

Ali*_*rsd 3 r ggplot2

我在ggplot2中有以下代码:

require("ggplot2")
df <- data.frame(x=factor(rep(1:2,5)), y=rnorm(10))

ggplot(df , aes(x,y)) + geom_point(size = 3) + 
theme(axis.text.x = element_text(angle = 40, hjust = 1, colour = "black", size=12),
      plot.title = element_text(size=16, face="bold", hjust=0.5)) +
labs(title = "Plot")
Run Code Online (Sandbox Code Playgroud)

现在,我想将背景颜色更改为theme_bw,但是随后,主标题和x轴选项将更改回默认值。

ggplot(df , aes(x,y)) + geom_point(size = 3) + 
theme(axis.text.x = element_text(angle = 40, hjust = 1, colour = "black", size=12),
      plot.title = element_text(size=16, face="bold", hjust=0.5)) +
labs(title = "Plot") + 
theme_bw()
Run Code Online (Sandbox Code Playgroud)

因此,如何在不丢失其他选项的情况下将主题更改为与theme_bw相同?

谢谢

A G*_*ore 5

这是解决方案(请确保theme_bw()已在theme()要应用的之前使用它:

ggplot(df , aes(x,y)) + geom_point(size = 3) + 
theme_bw() + 
theme(axis.text.x = element_text(angle = 40, hjust = 1, colour = "black", size=12),
      plot.title = element_text(size=16, face="bold", hjust=0.5)) +
labs(title = "Plot")
Run Code Online (Sandbox Code Playgroud)

  • 您还可以在脚本的开头设置此主题并将其应用于所有绘图。为此,在进行任何绘图之前,请运行“theme_set(theme_bw() + theme(...))”,其中“...”是“theme”函数内的所有代码。然后这个新主题将自动应用于所有后续情节。 (2认同)