为min-max范围创建geom_ribbon

时间:2013-05-14 23:25:07

标签: r ggplot2

鉴于以下数据:

df<-data.frame(
  year=(1996:2000),
  a=c(2,1.5,1.5,2,3),
  b=c(2,2,2,3,4),
  c=c(2,3,3,1,1))

使用ggplot:

  ggplot(df,aes(x=year))+
    geom_line(aes(y=a))+
    geom_line(aes(y=b))+
    geom_line(aes(y=c))

看起来像这样:

normal plot

如何。我可以创建一个功能区,始终显示最小值和最大值之间的区域(将其视为最小 - 最大范围),使其看起来像这样: better plot with range

1 个答案:

答案 0 :(得分:3)

首先计算最小值和最大值怎么样:

df$min <- apply(df[, -1], 1, min)
df$max <- apply(df[, -1], 1, max)

然后简单地绘制色带:

ggplot(df, aes(x = year, ymin = min, ymax = max)) + geom_ribbon()

ggplot2 ribbon example