[英]ggplot2: How to assign different alpha-values for different fills in geom_ribbon()?
[英]ggplot2 how to add different sets of colour palettes to different geom_ribbon?
我正在尝试 plot 两种类型的时间序列图。 一种“最小-最大”色带比“10th-90h 百分位”色带更透明,但颜色是特定于区域的。 在另一个图表中,我希望色带的颜色是区域和色带类型特定的。 有人可以帮助我吗? 我在下面添加了一些尝试使用透明度失败的代码(使用 alpha 值并没有真正改变我期望的数字)
library(ggplot2)
library(RColorBrewer)
cbPalette <- c("red", "blue")
test <- data.frame(time=c("2018-04-30", "2018-05-31", "2018-06-30", "2018-07-31", "2018-08-31", "2018-09-30", "2018-04-30", "2018-05-31", "2018-06-30", "2018-07-31", "2018-08-31", "2018-09-30"),
region=c("regionA","regionA","regionA","regionA","regionA","regionA", "regionB","regionB","regionB","regionB","regionB","regionB"),
minvalue=c(50, 70, 73, 97, 80, 65, 50, 70, 73, 97, 80, 65),
maxvalue=c(70, 100, 100, 100, 90, 70, 70, 100, 100, 100, 90, 70),
value90th=c(60, 90, 80, 98, 85, 69, 60, 90, 80, 98, 85, 69),
value10th=c(60, 80, 75, 97, 84, 67,60, 80, 75, 97, 84, 67),
addvalue=c(60, 80, 75, 50, 84, 67,60, 60, 75, 97, 84, 67))
p <- ggplot(test, aes(x=as.POSIXct(time)))
p <- p + facet_grid(region~.)
p <- p + geom_ribbon(aes(ymin = value10th, ymax = value90th, fill=region, alpha = 0.7))
p <- p + geom_ribbon(aes(ymin = minvalue, ymax = maxvalue, fill=region, alpha = 0.6))+ scale_fill_manual(values=cbPalette)
p <- p + geom_line(aes(y=addvalue, colour="pink"), size=0.5)
p
我认为解决方案可能在 scale_color_manual 和 scale_fill_manual 中。
在一个图表中,我有多个方面:
p <- p +
geom_smooth(method = "glm", method.args = list(family = "gaussian"), formula = y ~
poly(log(x), 3, raw=TRUE), se=TRUE, alpha = 0.3,aes(fill = Treatment)) +
scale_linetype_manual(values = c("solid","dashed","dotted")) +
scale_color_manual(values = c(Col[4],Col[3], Col[2])) +
scale_fill_manual(values = c(Col[4],Col[3], Col[2]))
也许您可以将 alpha 作为列表添加到 scale_fill_manual 中,以便为不同的功能区提供不同的 alpha 值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.