我有一个包含两个y系列的数据框。我有一个数据的散点图,但我无法弄清楚如何只为一个y系列添加误差线。
这是我的散点图代码的简化版本。
MAndPScatter <- ggplot(MeasuredAndPredicted, aes(x=MeasuredAndPredicted$VoltageDifference)) +
geom_point(aes(y = MeasuredAndPredicted$DeflectionMeasured) +
geom_point(aes(y = MeasuredAndPredicted$DeflectionPredicted)) +
geom_abline(data=CRT2, intercept = -0.0006814,
slope = 0.0015342, lty=3) +
geom_abline(data=CRT2, intercept = -1.156e-18,
slope = 1.120e-03, lty=3)
这就是情节
我只想在蓝色系列中添加错误栏,但我不知道该怎么做。我尝试了正常的错误条形码(当它只有蓝色系列时的情节)
geom_errorbar(data=MeasuredAndPredicted, aes(ymin=MeasuredAndPredicted$DeflectionMeasured-Errors,
ymax=MeasuredAndPredicted$DeflectionMeasured+Errors))
这没用,给了我这个错误
Error: Aesthetics must be either length 1 or the same as the data (9): ymin, ymax, x
以供参考
dput(MeasuredAndPredicted) structure(list(VoltageDifference = c(1.1575, 3.5725,
4.26, 5.56, 5.8225, 7.06, 9.865, 10.5475, 12.37), DeflectionMeasured = c(0.00125,
0.0045, 0.00575, 0.00775, 0.00875, 0.01, 0.01425, 0.01575, 0.01825 ),
DeflectionPredicted = c(0.0012964, 0.0040012, 0.0047712, 0.0062272, 0.0065212,
0.0079072, 0.0110488, 0.0118132, 0.0138544)), .Names = c("VoltageDifference",
"DeflectionMeasured", "DeflectionPredicted"), row.names = c(NA, 9L),
class = "data.frame")
它不漂亮,但你可以重写你不想要的错误作为NA,然后它们就不会出现。最好使用长格式。
df<-data.frame(x<-c(runif(10,0,50),runif(10,0,50)-2),type<-rep(c("measured","predicted"),each=10),y<-rnorm(20,5,10),errors<-c(runif(10,0,1),rep(NA,10)))
ggplot(df, aes(x=x,y=y,group=type,colour=type)) +
geom_point() +
geom_smooth(method="lm", fill=NA)+
geom_errorbar(aes(ymin=y-errors, ymax=y+errors), width=.5)