按因子在 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_grid
或 facet_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() )
}
我有一个数据集,我想根据其中一列生成多个图。也就是说,我希望能够使用 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_grid
或 facet_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() )
}