【问题标题】:Plot multiple lines and add an overall confidence band over these lines绘制多条线并在这些线上添加一个整体置信带
【发布时间】:2019-02-26 22:05:37
【问题描述】:
test_data <-
  data.frame(
    var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
    var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
    var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
  )

鉴于以上测试数据,我想做以下事情:

(1) 绘制类似这样的线:Plotting two variables as lines using ggplot2 on the same graph

(2) 为这些线添加一个整体置信带(线可以看成点),类似这样:Find points over and under the confidence interval when using geom_stat / geom_smooth in ggplot2

我知道如何将它们分开,但不确定如何将它们组合在一个情节中。

【问题讨论】:

标签: r ggplot2


【解决方案1】:

this post,您可以检查其中一个答案是使用geom_ribbon 而不是geom_line。这应该回答(2)。关于(1),可以按照您在提到的链接中所说的相同方式绘制它。

假设您希望将 var0 保留在 x 轴上,并相对于 var1 和 var2 进行绘图。

为此,您必须首先收集 var1 和 var2

test_data <-
  data.frame(
    var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
    var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
    var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
  ) %>%
  gather(key="var",value="value",var1:var2)

结果如下:

> head(test_data)
       var0  var    value
1 100.00000 var1 150.0000
2  85.67636 var1 146.4407
3  76.86862 var1 151.6061
4  79.46151 var1 143.6943
5  96.86709 var1 147.8999
6  91.20310 var1 157.2294

现在,要进行相应的绘图,您必须按新的组变量“var”(包含组“var1”和“var2”的名称)进行绘图,为上限和下限绘制一条丝带 geom_ribbon,以及geom_linecall 用于绘制实际线。

test_data %>%
  ggplot(aes(x=var0,y=value,group=var)) +
  geom_ribbon(aes(ymin=value*0.95,ymax=value*1.05),fill="grey70") +
  geom_line()

这会产生:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多