首页 > 解决方案 > 当折线图和条形图来自不同的数据框时,修复 ggplot 中的图例

问题描述

我有 3 个数据框,想让图例停止显示所有度量的灰色,但仅针对一个度量diff,其他度量显示不同的颜色。此外,条形图附近有蓝线,不应出现在图中

df1<-structure(list(day = structure(1:7, .Label = c("MONDAY", "TUESDAY", 
"WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"), class = "factor"), 
    value = c(10, 15, 15, 15, 10, 40, 10), variable = structure(c(3L, 
    3L, 3L, 3L, 3L, 3L, 3L), .Label = c("ALL", "DE", "BE", "NL", 
    "AUS", "ES", "IT", "FR", "PO"), class = "factor"), measure = c("NEW", 
    "NEW", "NEW", "NEW", "NEW", "NEW", "NEW")), row.names = c(220L, 
235L, 250L, 265L, 280L, 295L, 310L), class = "data.frame")
df2<-structure(list(day = structure(1:7, .Label = c("MONDAY", "TUESDAY", 
"WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"), class = "factor"), 
    value = c(10, 20, 25, 25, 10, 50, 10), variable = structure(c(3L, 
    3L, 3L, 3L, 3L, 3L, 3L), .Label = c("ALL", "DE", "BE", "NL", 
    "AUS", "ES", "IT", "FR", "PO"), class = "factor"), measure = c("OLD", 
    "OLD", "OLD", "OLD", "OLD", "OLD", "OLD")), row.names = c(219L, 
234L, 249L, 264L, 279L, 294L, 309L), class = "data.frame")
df3<-structure(list(day = structure(1:7, .Label = c("MONDAY", "TUESDAY", 
"WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"), class = "factor"), 
    value = c(0, 5, 10, 10, 0, 10, 0), variable = structure(c(3L, 
    3L, 3L, 3L, 3L, 3L, 3L), .Label = c("ALL", "DE", "BE", "NL", 
    "AUS", "ES", "IT", "FR", "PO"), class = "factor"), measure = c("diff", 
    "diff", "diff", "diff", "diff", "diff", "diff")), row.names = c(221L, 
236L, 251L, 266L, 281L, 296L, 311L), class = "data.frame")



ggplot(data = df1, aes(x = day, y = value,group=1,colour=measure)) + 
  geom_line( lwd=1.5)+
  geom_line(data = df2, aes(x = day, y = value,group=1), lwd=1.5)+
  geom_col(data = df3, aes(x = day, y = value,group=1), lwd=0.5)+
  geom_ribbon(aes(x=day, ymax=df1$value, ymin=df2$value), fill="green", alpha=.5,show.legend =FALSE)
  

标签: rggplot2

解决方案


推荐阅读