ggplot2:使用选项进行多个图形的绘制

3
我希望创建10个具有不同数据但外观相同的图形。例如,我想为每个图形更改网格线的颜色。这可以通过添加来完成。
+ opts(panel.grid.major = theme_line(colour = "white")

对于每个图表定义,都可以单独设置背景颜色。然而,如果我现在决定将背景色更改为“灰25”,我必须逐个修改每个图表。这似乎是太多的工作了。 ;)

因此,我考虑做一些类似的事情

opt1 <- '+ opts(panel.grid.major = theme_line(colour = "white")'

然后像这样定义每个图:
pl_x <- pl_x + opt1
pl_y <- pl_y + opt1
...

其他选项(边距,字体,比例等)可以添加到opt1中。然而,这并不起作用(尝试打印pl_x时出现错误消息)。有人知道如何实现我想要做的吗?

我还尝试过使用theme_set和theme_update,但结果是除非我完全重新启动R,否则我的所有图都无法正常工作。

1个回答

4

您不必添加加号。

opt <- opts(panel.grid.major = theme_line(colour = "white"))

pl_x <- pl_x + opt

尽管这个不起作用:

opt <- opts(...) + scale_y_continuous(..)

这个做了什么:

opt <- opts(...)
syc <- scale_y_continuous(...)
pl_x <- pl_x + opt + syc

由于 Hadley 的示例,这也可以工作:
opt <- list(opts(...),scale_y_continuous(...))

注意:自版本0.9.2以来,opts已被theme替换


1
太好了!实际上认真思考代码是个好主意... ;) - donodarazao
1
ggplot2的语法非常灵活,以至于它几乎让它变得更加复杂。我通过反复试验找到了这些小珠宝。 - Brandon Bertelsen
3
对于第二个示例,创建一个列表:opt <- list(opts(...), scale_y_continuous(...)) - hadley

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