带置信带和标签数据点的r线图

时间:2018-09-14 02:43:43

标签: r ggplot2 confidence-interval

我试图绘制带有置信区间带的线图并标记这些数据点。

这是我下面的数据集

    x        y        lower     upper
 1991-1995   0.0000   0.00000   0.0000
 1996-2000   1.4920  -0.19782   3.1818
 2001-2005   3.2162   0.97042   5.4620
 2006-2010   7.7719   4.66051  10.8833

这是我到目前为止尝试过的

ggplot(df, aes(x, y))+
                  geom_point(color='#E69F00')+
                  geom_line(data=df)+theme_minimal() + 
                  geom_text(aes(label=round(y,4)), vjust=-.5) +
                  geom_ribbon(data=df,aes(ymin= lower,ymax= upper), linetype=2,alpha=0.3)

我一直遇到错误

geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?

我也看不到任何CI乐队

任何有关如何解决此问题的建议都将受到赞赏。预先感谢。

1 个答案:

答案 0 :(得分:1)

一种更好的方法是将x转换为数字变量,以便可以正确布置x轴。 tidyr::separate_rows可以将开始日期和结束日期分隔到不同的行,这使您可以将它们全部绘制为一行:

library(tidyverse)

df <- data_frame(x = c("1991-1995", "1996-2000", "2001-2005", "2006-2010"), 
                 y = c(0, 1.492, 3.2162, 7.7719), 
                 lower = c(0, -0.19782, 0.97042, 4.66051), 
                 upper = c(0, 3.1818, 5.462, 10.8833))

df %>% 
    separate_rows(x, convert = TRUE) %>% 
    ggplot(aes(x, y, ymin = lower, ymax = upper, label = round(y, 2)[c(TRUE, NA)])) + 
    geom_ribbon(alpha = 0.3) + 
    geom_line() + 
    geom_point() + 
    geom_text(nudge_y = .4)

从这一点上讲,您可以进行很多调整。