我正在创建一个图形,然后在该图形上添加误差线。误差线的位置取决于第一个图表。我绘制的误差线的数量也必须能够更改(因此for循环)。
df <- data.frame(x=1:10,y=sample(1:10,10,replace = TRUE))
plot <- ggplot(df)+
geom_line(aes(x,y))
plot.data <- ggplot_build(plot)$data[[1]]
plot #first plotting
要添加误差线(在此示例中,值的范围
for(i in 1:5){
plot<- plot + geom_errorbar(x=i*2,ymin = min(plot.data$y[plot.data$x <= i*2]),ymax = max(plot.data$y[plot.data$x <= i*2]),width = 1,color = "blue")
}
plot #second plotting
我希望能够控制误差线两端的x位置。我希望它们位于error_bar的垂直部分,我不知道为什么有些在x =〜6处而有些在x =〜20
当我尝试在aes()
周围添加x,ymin,ymax
时:
for(i in 1:5){
plot<- plot + geom_errorbar(aes(x=i*2,ymin = min(plot.data$y[plot.data$x <= i*2]),ymax = max(plot.data$y[plot.data$x <= i*2]),width = 1),color = "blue")
}
plot
仅绘制了最终的error_bar,尽管其末端位于正确的位置。
我知道可以使用aes()操作error_bars的末端,但是我不能使用它,因为它不会在循环中复制,只绘制最后一次迭代。 此外,当前确定error_bars两端的x位置的是什么?数字〜6.5和〜21没有出现在我的任何数据中
答案 0 :(得分:1)