R 使用不同的数据重复ggplot,但不键入整个代码

R 使用不同的数据重复ggplot,但不键入整个代码,r,ggplot2,R,Ggplot2,是否有一种方法可以重新绘制某些内容,但使用子集数据集,而无需再次写出整个代码 可能类似于last_plot(),但允许指定要使用的data.frame?您可以使用%+%运算符: ##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_p

是否有一种方法可以重新绘制某些内容,但使用子集数据集,而无需再次写出整个代码


可能类似于last_plot(),但允许指定要使用的data.frame?

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

##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

虽然我觉得基列斯皮的答案是完整的。我想添加一个我个人经常使用的第二种方法,但在野外很少见到。它非常适合应用公司/个人主题,避免重打自己的作品

您可以将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

default.point请更具体地回答您的问题-我不能确切地告诉您想要做什么,或者为什么。可能是显而易见的,但值得指出的是,在使用
%+%
操作符后,您也可以继续使用
+
操作符:
g%+%dd\u new+labs(title=“Best Graph”)
不一定是显而易见的!一个方便的技巧是添加对
ggsave()
的调用,以将新绘图输出到文件。