【问题标题】:ggplot2 how to add different sets of colour palettes to different geom_ribbon?ggplot2如何将不同的调色板添加到不同的geom_ribbon?
【发布时间】:2020-01-20 05:38:25
【问题描述】:

我正在尝试绘制两种类型的时间序列图。一种“最小-最大”色带比“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

【问题讨论】:

    标签: r ggplot2 plot time-series


    【解决方案1】:

    我认为解决方案可能在 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 值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      相关资源
      最近更新 更多