ggplot2:每个 facet 分别设置颜色比例尺

28

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

我做了一些类似于:

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

即:绘制来自不同类别(manufacturer)的个体测量值(model)的二维图,按类别进行分组绘制,并通过颜色表示个体。 问题在于所有个体共享相同的颜色比例尺,因此一个分组内的点具有非常相似的颜色。

使用geom_linegroup美学将解决此问题,但线条所传达的信息与点不同。

另一个明显的解决方案是放弃分组,并为每个子集绘制单独的图。(如果这应该是唯一的解决方案:是否有任何快速、智能或经过验证的方法来实现?)

2个回答

6

我不确定在按因子着色时是否有此选项。然而,快速生成单独的图表的方法可能是这样的:

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()
})

相关答案: 如何使用不同的图例和填充颜色来绘制分面 ggplot 图表?


正如Hadley在您提供的答案中所提到的:“通过绘制单独的图表来解决问题很容易” - 这是如何实现的。谢谢!但我仍然在努力以与我创建的其他分面图相匹配的方式将它们组合起来。 - ian
你能展示一下你目前的进展吗?并尝试描述一下哪些地方匹配/不匹配吗? - Brandon Bertelsen
实际上,也许最好提出一个新问题,展示你目前拥有的情节和你真正想要的内容。 - Brandon Bertelsen

5

我认为您只是想按类别着色,每个制造商都会生产几种型号,每个类别仅有一两个:

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

alt text


3
“mpg”数据集只是一个例子。我想绘制每个物种(按“facet”分类)的树木(按“颜色”或“组”分样本)的密度梯度(x vs y)。每棵树仅属于一种物种。 - ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接