ggplot - 方面通过函数输出(ggplot - facet by function outp

2019-06-27 19:18发布

我不能确定如何在数据的功能,小面data一个元素ggplot对象。 在下面的例子玩具,我想要做的是这样的:

df <- data.frame(x=1:8, y=runif(8), z=8:1)
ggplot(df, aes(x=x, y=y)) + geom_point() + facet_wrap( ~ (z %% 2))

但是,使该错误: Error in layout_base(data, vars, drop = drop) : At least one layer must contain all variables used for facetting

我可以通过变换数据帧实现所需的结果:

ggplot(transform(df, z=z%%2), aes(x=x, y=y)) + geom_point() + facet_wrap( ~ z)

但往往是可取的,如果我已经被赋予了不使用这种转化,例如ggplot对象,我想一些即席刻面添加到它。

Answer 1:

这听起来很熟悉我,但我从来没有设法解决它 - 我认为小变量处理只比审美变量处理不那么强大。

解决你的根要求 - 以即席面现有ggplot; 请注意,您可以替换现有的批发(主)数据集R ggplot -例如

myplot %+% transform(myplot$data, z=z%%2)


文章来源: ggplot - facet by function output
标签: r facet ggplot2