gpt4 book ai didi

r - ggplot2 - 在堆叠条形图中更改 `geom_rect` 颜色

转载 作者:行者123 更新时间:2023-12-01 06:03:47 29 4
gpt4 key购买 nike

我正在尝试使用 ggplot2::geom_bar 绘制堆叠条形图根据分类变量使用背景阴影(使用 ggplot2::geom_rect() ),如下所示:

shading <- data.frame(min = seq(from = 0.5, to = max(as.numeric(as.factor(diamonds$clarity))), by = 1),
max = seq(from = 1.5, to = max(as.numeric(as.factor(diamonds$clarity))) + 0.5, by = 1),
col = c(0,1))

ggplot() +
theme(panel.background = element_rect(fill = "transparent")) +
geom_bar(data = diamonds, mapping = aes(clarity, fill=cut)) +
geom_rect(data = shading,
aes(xmin = min, xmax = max, ymin = -Inf, ymax = Inf,
fill = factor(col), alpha = 0.1)) +
geom_bar(data = diamonds, mapping = aes(clarity, fill=cut)) +
guides(alpha = FALSE)

enter image description here

如何更改阴影的颜色?
我试过 scale_fill_manual(values = c("white", "gray53")) ,但似乎在 ggplot2 中无法实现多尺度美学( https://github.com/hadley/ggplot2/issues/578 )。有没有另一种方法可以获得所需的结果?

最佳答案

是的,而不是将您的颜色放入 aes() , 把它们放在外面(所以它们按原样使用)。因为它在aes()之外调用您必须使用显式 fill=shading$col而不是 fill=col , 和 shading$col应该具有您所追求的颜色名称(而不是解释为因子的变量)。

shading$col <- ifelse(shading$col, 'white', 'gray53')
ggplot() +
theme(panel.background = element_rect(fill = "transparent")) +
geom_bar(data = diamonds, mapping = aes(clarity, fill=cut)) +
geom_rect(data = shading,
aes(xmin = min, xmax = max, ymin = -Inf, ymax = Inf, alpha = 0.1),
fill=shading$col) + # <-- here
geom_bar(data = diamonds, mapping = aes(clarity, fill=cut)) +
guides(alpha = FALSE)

关于r - ggplot2 - 在堆叠条形图中更改 `geom_rect` 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31599146/

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