在ggplot2中突出显示堆积条形图的一个条形图

时间:2018-04-23 13:38:55

标签: r ggplot2

我有一个堆积的条形图,受到Figure 3.8this的启发,我想突出显示条形图的一个条形图。例如,我希望中间条的所有三种颜色都是较暗的,而第一和第三条中的所有颜色都要稍微浅一些。我假设darken的{​​{1}}参数可能会以某种方式派上用场。

scale_fill_OkabeIto

以下是目前为止的图表:

我已经看到posts显示如何为常规条形图执行此操作,但无法弄清楚如何为堆积条形图执行此操作。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

执行此类操作的最简单方法是根据ID是否是您想要突出显示的ID来更改alpha。您可以在数据框中创建一个布尔变量,例如isHilite = ID == 2,或者在绘图时可以直接进行内联。

我删除了你的色标只是因为我没有安装该软件包,所以没有必要向你展示这个例子。

如果您想进入更复杂的颜色函数,另一个选项是munsell package,它适用于整个不同的颜色系统。我没有用它来用它来组合一个好的答案,但它具有变暗,变亮和去饱和的颜色的功能。

library(ggplot2)    
ID <- rep(1:3, each = 3)
group <- rep(letters[1:3], times = 3)    
prop <- c(0.8, 0.1, 0.1, 0.6, 0.3, 0.1, 0.4, 0.3, 0.3)

toy_df <- data.frame(ID = ID, group = group, prop = prop)

ggplot(toy_df, aes(x = ID, y = prop, fill = group)) +
    geom_bar(aes(alpha = ID == 2), stat = "identity") +
    scale_alpha_manual(values = c("TRUE" = 1, "FALSE" = 0.6), guide = F)

reprex package(v0.2.0)创建于2018-04-23。

答案 1 :(得分:1)

这是一种简单的方法,只需将alpha映射到ID是否为给定值。

var H = dr ? (((C < 0 ? 0 : 1) - C) / dr) : 0

enter image description here

当然,你仍然可以使用你的色盲友好颜色集