ggplot2:每个方面单独的色标

时间:2010-11-19 01:28:33

标签: r ggplot2

直观地说,我正在寻找类似:facet_(scales="free_color")

的东西

我喜欢

p <- ggplot(mpg, aes(year, displ, color=model)) + facet_wrap(~manufacturer)
p + geom_jitter()

即:绘制属于不同物种(model)的个体(manufacturer)的2d测量结果,由物种刻面,以颜色表示个体。 问题是所有人都拥有相同的颜色范围 - 因此刻面中的点具有非常相似的颜色。

使用geom_line的group美学可以解决问题,但是线条说明的不同于点。

另一个明显的解决方案是删除刻面并为每个子集绘制单独的绘图。 (如果这应该是唯一的解决方案:是否有任何快速,智能或经过验证的方法可以做到这一点?)

2 个答案:

答案 0 :(得分:5)

当你用一个因素着色时,我不确定这是一个可用的选项。但是,生成单个图的快速方法是这样的:

d_ply(mpg, .(manufacturer), function(df) {
jpeg(paste(df$manufacturer[[1]], ".jpeg", sep=""))
plots <- ggplot(df, aes(year, displ, color=factor(model))) + geom_jitter()
print(plots)
dev.off()
})

相关答案: Different legends and fill colours for facetted ggplot?

答案 1 :(得分:4)

我认为你只想逐个颜色,每个制造商制作几个模型,每个模型每个只有一个或两个:

p <- ggplot(mpg, aes(year, displ, color=class)) + facet_wrap(~ manufacturer)
p + geom_jitter()

alt text