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

But*_*eon 6 r ggplot2

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

也许像last_plot(),但允许一个特定的data.frame使用?

csg*_*pie 11

您可以使用%+%运营商:

##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
Run Code Online (Sandbox Code Playgroud)

  • 也许很明显,但值得指出的是,在使用 `%+%` 运算符后,您也可以继续使用 `+` 运算符: `g %+% dd_new + labs(title="Best Graph")` (2认同)

Bra*_*sen 6

虽然我觉得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
Run Code Online (Sandbox Code Playgroud)