TL; DR:如何保存绘图轴文本和大小以及其他对象,以使代码更短?

举例来说,我想用不同的几何图形绘制不同的数据,但使用相同的轴文本大小和标题。

组成代码中看起来像这样

ggplot(data = df, aes(x = x, y = y) + geom_line() +
    ylab("my y axis") +
    xlab("my x axis") +
    opts(title = "my title") +
    theme(axis.text=element_text(size=20),
    axis.title=element_text(size=14,face="bold"))


ggplot(data = new_df, aes(x = whatever, y = something) + geom_anythingelse() +
    ylab("my y axis") +
    xlab("my x axis") +
    opts(title = "my title") +
    theme(axis.text=element_text(size=20),
    axis.title=element_text(size=14,face="bold"))

#...


我如何或可以保存

my_theme <-   ylab("my y axis") +
              xlab("my x axis") +
              opts(title = "my title") +
              theme(axis.text=element_text(size=20),
              axis.title=element_text(size=14,face="bold"))


作为自己喜欢的对象添加到ggplot中。 ggplot是否足够灵活以适应我的需求?

ggplot(data = df, aes(x = x, y = y) + geom_point() +
my_theme


这个问题是否违反了ggplot建立的对象命名哲学?

最佳答案

您可以毫无问题地创建主题对象,例如:

mytheme<-theme(panel.background=element_rect(colour="green"))


如果这是您键入的标准主题,它甚至更加容易

old_theme<- theme_update(panel.background=element_rect(colour="green"))


在前一种情况下,您将编写:

ggplot(...)+mytheme


而在后者中,由于您的自定义主题现在是标准主题,因此只需键入:

ggplot(...)

关于r - ggplot主题格式可以保存为对象吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23173915/

10-16 23:01