R中的误差条带有两个原子矢量

时间:2015-02-17 17:24:37

标签: r

我有以下原子载体:

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图?

注意:我之前的问题不明确,所以我删除了这个问题。

1 个答案:

答案 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))

enter image description here

<强> [更新]

如果您想从两个数据集中输入错误条,则可以使用errbaradd=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))

enter image description here

其中Atom_1Atom_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))