我怎么能在两个方向上创建具有误差条的散点图? 通常,误差棒是在垂直方向上(即,在y值的不确定性)。 但是我的数据在x价值的不确定性,以及
X ErrX Y ErrY
1.0 0.1 3.0 0.2
1.5 0.3 4.2 0.1
etc
我怎么能在两个方向上创建具有误差条的散点图? 通常,误差棒是在垂直方向上(即,在y值的不确定性)。 但是我的数据在x价值的不确定性,以及
X ErrX Y ErrY
1.0 0.1 3.0 0.2
1.5 0.3 4.2 0.1
etc
使用ggplot2
,这很容易。 您可以在errorbars的所有四个“面”的长度完全控制。 随着geom_errorbar()
设置的Y错误, geom_errobarh()
的H是水平方向)设置的X-错误。
#toy data
df <- data.frame(X = rnorm(4), errX = rnorm(4)*0.1, Y = rnorm(4), errY = rnorm(4)*0.2)
#load ggplot2
require(ggplot2)
#make graph
ggplot(data = df, aes(x = X, y = Y)) + geom_point() + #main graph
geom_errorbar(aes(ymin = Y-errY, ymax = Y+errY)) +
geom_errorbarh(aes(xmin = X-errX, xmax = X+errX))
通过设置内部参数具有用于每个杆,线宽等的颜色分开的控制geom_errorbar()
请参阅帮助和谷歌的细节。 例如,可以控制“帽”的宽度或完全与消除它们width
参数。 比较上述这一个用于去除其中的一个例子的曲线图:
ggplot(data = df, aes(x = X, y = Y)) + geom_point() +
geom_errorbar(aes(ymin = Y-errY, ymax = Y+errY), width = 0) +
geom_errorbarh(aes(xmin = X-errX, xmax = X+errX), height = 0)
作为替代方案(使用库尔特F.的‘DF’):
rangeX = range(c(df$X + df$errX, df$X - df$errX))
rangeY = range(c(df$Y + df$errY, df$Y - df$errY))
plot(df$X, df$Y, xlim = rangeX, ylim = rangeY)
segments(df$X, df$Y - df$errY, df$X, df$Y + df$errY)
segments(df$X - df$errX, df$Y, df$X + df$errX, df$Y)
从我的斗志包+从简略的玩具数据使用error.crosses:
df1 <- data.frame(mean=df$X,sd=df$errX)
df2 <- data.frame(mean=df$Y,sd=df$errY)
error.crosses(df1,df2,sd=TRUE)
对于一些更复杂的例子参见error.crosses帮助页面。