更改ggplot对象的数据集

Jua*_*uan 10 graphics plot r ggplot2

我正在绘制我的数据的子集,我ggplot2想知道我是否会以某种方式使用ggplot原始数据子集中的对象中已包含的所有选项.举个例子,拿这是第一个图(代码块1):

require(ggplot2)
p <- ggplot(mtcars, aes(mpg, wt, color=factor(cyl))) + geom_point(shape=21, size=4)
print(p)
Run Code Online (Sandbox Code Playgroud)

现在我想用一个子集制作第二个图mtcars,所以我通常会这样做(代码块2):

new_data <- subset(mtcars, disp > 200)
p <- ggplot(new_data, aes(mpg, wt, color=factor(cyl))) + geom_point(shape=19, size=4)
print(p)
Run Code Online (Sandbox Code Playgroud)

为数据集中的这么小的差异再次编写所有代码似乎有点麻烦.通常在ggplot中,您可以更改一些参数(是正确的术语吗?),使用p; 例如,我可以改变绘图颜色p + scale_color_manual(values=rainbow(3)).当然,这只是一个愚蠢的例子,但当我有一个非常详细的情节时,它变得非常烦人,到处都有许多调整.

所以基本上,我想知道的是,如果有某种方式,比如一个函数x,我可以这样做:

p + x(data = new_data)
Run Code Online (Sandbox Code Playgroud)

并获得与代码块2相同的功能.

非常感谢,胡安

小智 17

我认为使用ggplot%+%运算符可以很容易地完成.

p <- ggplot(mtcars, aes(mpg, wt, color=factor(cyl))) + geom_point(shape=21, size=4)
print(p)

p2<-p %+% mtcars[mtcars$disp>200,]
print(p2)
Run Code Online (Sandbox Code Playgroud)

  • 您能用自己的话解释一下“%+%”运算符到底是做什么的吗? (4认同)