【发布时间】:2014-02-16 15:04:51
【问题描述】:
如果您要为大量组定性地映射到颜色,ggplot 的自动颜色分配会相邻绘制非常相似的颜色,因此很难看出哪个指的是哪个键等。举例说明:
require(ggplot2); require(stringr)
df = data.frame(x = letters, y = sample(20:100,26), lab=word("apple ball cat dog elephant frog goat hat ice jackal king lion mango nest owl parrot queen rabbit ship tomato umbrella van watch xylophone yatch zebra", 1:26))
p = ggplot(df, aes(x, y, fill=lab)) + geom_bar(stat="identity")
p + scale_fill_discrete()
可以手动混合一些随机颜色:
cols = rainbow(26, s=.6, v=.9)[sample(1:26,26)]
p + scale_fill_manual(values=cols)
.. 导致更有用的彩虹分解,但这看起来很笨拙,仍然会留下一些颜色聚集在一起,通常并不理想。 ggplot 是否有本地方法来实现这样的目标(但希望更好)?
【问题讨论】:
-
我的建议,不要。一个情节中的信息太多了,并且颜色没有显着差异,不足以为观众有效地翻译这些信息。尽力将结果分开或分组为有意义的或其他功能性的休息 - 你的读者会感谢你。尽管有 10% 的人还是色盲。
-
直接从这里的经验发言:stackoverflow.com/questions/13616515/…
-
布兰登,我很欣赏你提出的感知问题,通常我会同意。我的问题是我正在处理 30 多个类别的不可分组数据,它们的标题很长(对于 x 轴来说太大),我想避免 90 度旋转。
-
@Brandon Bertelsen - 我同意你的观点。然而,有时读者只是——我! - 我想找出趋势或进行初步的数据探索 - 在将数据进一步分组之前非常简单。我发现这个问题很有帮助。