【发布时间】:2016-01-20 07:12:56
【问题描述】:
假设您想在R 中绘制多个n 不同系列(使用plot()、ggplot2 或lattice 并不重要。我将使用ggplot2为了简单起见),您如何选择一组漂亮的颜色(如可区分,但好看)。
我知道有多种方法,但我也想征求您的意见。
数据:
library(ggplot2) # for easy plots
n <- 10 # n cases for different numbers
set.seed(42)
dat <- data.frame(id = "A",
group = 1:n,
val = rnorm(n))
1。 GGplot标准:
优点:可扩展
缺点:在我看来不是很漂亮
ggplot(dat, aes(x = id, y = val, fill = as.factor(group))) +
geom_bar(stat = "identity", position = "dodge")
2。彩虹:
优点:可扩展,即没有最大颜色数
ggplot(dat, aes(x = id, y = val, fill = as.factor(group))) +
geom_bar(stat = "identity", position = "dodge") +
scale_fill_manual(values = rainbow(n))
RColorBrewer
优点:多种不同的颜色设置
缺点:仅限于最多 12 种颜色
请参阅ColorBrewer2 了解所有套装。
ggplot(dat, aes(x = id, y = val, fill = as.factor(group))) +
geom_bar(stat = "identity", position = "dodge") +
scale_fill_manual(values = brewer.pal(n, name = "BrBG")) # BrBG as an example
问题
当您的案例可能超过 10 个时,您如何设置绘图中的颜色?您在指定颜色时设置了什么标准?
如果您想添加您认为重要的因素,请随时编辑此帖子!
编辑:
与显示的图表相反,我处理的是时间序列,其中序列的颜色不包含任何信息,除了序列名称的标识
【问题讨论】:
-
您受限于人脑分辨颜色的能力。超过 10 个将永远是一个问题。寻找一种不同的方法来可视化您的数据。
-
也许 cran 上的 viridis 包很有用。有关文档,请参阅 here。
-
RColorBrewer(网站和 R 包)非常适合这个!
-
老实说,我选择的调色板通常基于我所在组织的调色板。只要我能在调色板中找到强烈的对比色,我就会尝试使用它们。但我尽量避免一次使用超过四种颜色,除非我有充分的理由。即使是四种颜色也会使某些图表难以解释。