gpt4 book ai didi

r - 如何使用 R-ggplot2 区分条形图中的不同组(除了使用填充颜色)

转载 作者:行者123 更新时间:2023-12-02 09:33:40 24 4
gpt4 key购买 nike

set.seed(1221)
df <- data.frame(group = rep(LETTERS[1:12], 3),
outcome = c(runif(12, 1, 5), runif(12, 5, 10), runif(12, 5, 8) ),
trt = rep(c("H", "M", "L"), each=12) )

ggplot(df, aes(x=trt, y=outcome, fill=group) ) +
geom_bar(stat = "identity", position = "stack")

enter image description here

该代码是一个简单的示例,我们可能有很多组(本例中为 12 个组)。

现在如果我们只用颜色来区分不同的组,这并不是很好,因为当组太多时,许多颜色会很接近。即使改变调色板,我认为也无法生成12种截然不同的颜色,可视化效果也不好。

我认为通过结合至少两种美学属性(颜色和其他东西),差异化可能会很好。例如,6 种不同的颜色和 2 种不同的东西将组成 12 组。

但是,我不知道除了填充颜色之外还有哪些美学属性有助于区分群体。我尝试过线条颜色和线条类型,但我认为它们不好。

如有任何建议或想法,我们将不胜感激。

最佳答案

即使坚持使用填充颜色,如果您做几件事也可以提高差异化:

  • 使用旨在定性区分不同组的调色板,而不是遵循连续的顺序。 ggplot 中的 Brewer 调色板对此很有用,尤其是“定性”调色板,尽管它们对接受的组数有上限。
  • 在每个组的矩形周围添加边框

这些微小的改变确实改善了与原始情节相关的事情:

ggplot(df, aes(x=trt, y=outcome, fill=group) ) +
geom_bar(stat = "identity", position = "stack", colour = 'black') +
# Note: had to use palette = 3 here as palette's 1 and 2 can't be
# used for 12 groups
scale_fill_brewer(type = "qual", palette = 3)

enter image description here

关于r - 如何使用 R-ggplot2 区分条形图中的不同组(除了使用填充颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43196698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com