我有一个数据集,我想根据其中一列生成多个图。也就是说,我希望能够使用ggplot为该因素的每种变化绘制一个单独的图。

以下是一些快速示例数据:

Variety = as.factor(c("a","b","a","b","a","b","a","b","a","b")
Var1 = runif(10)
Var2 = runif(10)
mydata = as.data.frame(cbind(Variety,Var1,Var2))


我想在Var2上生成两个Var1的独立图,一个用于Variety A,另一个用于Variety B,最好在一个命令中完成,但是如果有一种方法可以不分割表的话,也可以。

最佳答案

您可以使用facet_gridfacet_wrap按因子对图形进行拆分。

ggplot(mydata, aes(Var1, Var2)) + geom_point() + facet_grid(~ Variety)


或者,在单独的图上,只需使用一个简单的循环

for (var in unique(mydata$Variety)) {
    dev.new()
    print( ggplot(mydata[mydata$Variety==var,], aes(Var1, Var2)) + geom_point() )
}

关于r - 通过因子在ggplot中生成多个图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31798162/

10-10 18:59