我有以下原子载体:
Atom_1
Size Square Standard_Deviation
10 0.20 0.56
20 0.40 0.36
30 0.34 0.50
40 0.26 0.33
Atom_2
Size Square Standard_Deviation
10 0.20 0.56
20 0.40 0.36
30 0.34 0.50
40 0.26 0.33
我使用
绘制图表plot(Atom_1, col="red")
points(Atom_2, col="blue")
但是如何添加具有原子矢量的相应标准偏差列的误差线?
我尝试了解决方案:Add error bars to show standard deviation on a plot in R
d = data.frame(
x <- as.numeric(Atom_1[, 1])
, y <- as.numeric(Atom_1[, 2])
, sd <- as.numeric(Atom_1[, 3])
)
plot(d$x, d$y, type="n", ylim = c(0, 10))
with (
data = d
, expr = errbar(x, y, y+sd, y-sd)
)
但它没有显示任何内容。我怎样才能添加Atom_2图?
注意:我之前的问题不明确,所以我删除了这个问题。
答案 0 :(得分:1)
我不确定您的代码究竟出现了什么问题,但这里的代码是有效的:
library(Hmisc)
d <- setNames(Atom_1,c('x','y','sd'))
# x y sd
# 1 10 0.20 0.56
# 2 20 0.40 0.36
# 3 30 0.34 0.50
# 4 40 0.26 0.33
with(d, errbar(x, y, y+sd, y-sd))
<强> [更新] 强>
如果您想从两个数据集中输入错误条,则可以使用errbar
对add=TRUE
进行另一次调用:
with(Atom_1, errbar(Size, Square, Square+Standard_Deviation, Square-Standard_Deviation,col='red',errbar.col='red'))
with(Atom_2, errbar(Size, Square, Square+Standard_Deviation, Square-Standard_Deviation,col='blue',errbar.col='blue',add=T))
其中Atom_1
和Atom_2
是您的示例数据集(为更好的视图修改了Atom_2):
Atom_1 <- structure(list(Size = c(10L, 20L, 30L, 40L), Square = c(0.2,
0.4, 0.34, 0.26), Standard_Deviation = c(0.56, 0.36, 0.5, 0.33
)), .Names = c("Size", "Square", "Standard_Deviation"), class = "data.frame", row.names = c(NA,
-4L))
Atom_2 <- structure(list(Size = c(12L, 22L, 28L, 38L), Square = c(0.2,
0.4, 0.34, 0.26), Standard_Deviation = c(0.56, 0.36, 0.5, 0.33
)), .Names = c("Size", "Square", "Standard_Deviation"), class = "data.frame", row.names = c(NA,
-4L))