我试图绘制带有置信区间带的线图并标记这些数据点。
这是我下面的数据集
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乐队
任何有关如何解决此问题的建议都将受到赞赏。预先感谢。
答案 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)
从这一点上讲,您可以进行很多调整。