我想创建一个包含两行的ecdf图,我想将错误栏添加到其中一行。
我正在使用此代码
x <- c(16,16,16,16,34,35,38,42,45,1,12)
xError <- c(0,1,1,1,3,3,3,4,5,1,1)
y <- c(16,1,12)
length(x)
length(xError)
length(y)
df <- rbind(data.frame(value = x,name='x'),
data.frame(value = y,name='y'))
ggplot(df, aes(x=value,color=name,linetype=name))+ stat_ecdf()+ geom_errorbar(aes(ymax = x + xError, ymin=x - xError))
错误栏应添加到x值,但它会出现此错误:
错误:美学必须是长度为1或与dataProblems相同的长度:x + xError,x - xError
我不明白 - 结果长度相同。
修改
我改为问题,所以它变得更容易了 - 我认为真正的问题与ECDF图和误差线有关。以此代码为例:
x <- c(16,16,16,16,34,35,38,42,45,1,12)
xError <- c(0,1,1,1,3,3,3,4,5,1,1)
y <- c(16,1,12)
df <- data.frame(value = x)
ggplot(df, aes(x=value))+ stat_ecdf()+ geom_errorbar(aes(ymax = x + xError, ymin=x - xError))
它打印错误条,但图完全破坏。
答案 0 :(得分:0)
这里有一些类似的问题:confidence interval for ecdf
也许这就是你要归档的东西。
修改强>
我认为这是你想要得到的东西:
dat2 <- data.frame(variable = x)
dat2 <- transform(dat2, lower = x - xError, upper = x + xError)
l <- ecdf(dat2$lower)
u <- ecdf(dat2$upper)
v <- ecdf(dat2$variable)
dat2$lower1 <- l(dat2$variable)
dat2$upper1 <- u(dat2$variable)
dat2$variable1 <- v(dat2$variable)
ggplot(dat2,aes(x = variable)) +
geom_step(aes(y = variable1)) +
geom_ribbon(aes(ymin = upper1,ymax = lower1),alpha = 0.2)