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)