使用不同的数据重复ggplot而不输入整个代码

时间:2012-10-23 14:54:46

标签: r ggplot2

是一种重新绘制内容但是使用子集数据集而无需再次编写整个代码的方法吗?

也许类似于last_plot(),但是允许一个人使用data.frame?

2 个答案:

答案 0 :(得分:10)

您可以使用%+%运算符:

##Two data sets:
R> dd = data.frame(x = runif(10), y=runif(10))
R> dd_new = data.frame(x = runif(10), y=runif(10))

R> g = ggplot(dd, aes(x,y)) + geom_point() 
R> g
R> g %+% dd_new

答案 1 :(得分:5)

虽然我觉得Csgillespie的答案是完整的。我想添加一个我个人经常使用的辅助方法,但很少在野外看到。它非常适合应用公司/个人主题并避免重新输入一个人的工作。

您可以将ggplot2元素保存为列表,就像使用... + ... +

编写它们一样
default.point <- list(geom_point(), 
coord_flip(),
theme(
axis.text.x=element_text(size=12
)))

ggplot(diamonds,aes(carat, price, colour=cut)) + default.point