按因子在 ggplot 中生成多个图

Generating Multiple Plots in ggplot by Factor

我有一个数据集,我想根据其中一列生成多个图。也就是说,我希望能够使用 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,最好是在一个命令中,但如果有一种方法可以在不拆分 table, 也可以。

您可以使用 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() )
}