r - 带误差线的散点图

标签 r plot

如何在 R 中生成以下图表?图中显示的点是平均值,它们的范围对应于最小值和最大值。 我有两个文件中的数据(下面是一个例子)。

x   y
1   0.8773
1   0.8722
1   0.8816
1   0.8834
1   0.8759
1   0.8890
1   0.8727
2   0.9047
2   0.9062
2   0.8998
2   0.9044
2   0.8960
..  ...

enter image description here

最佳答案

首先:R 无法“开箱即用”地绘制错误栏,这是非常不幸和令人惊讶的。

这是我最喜欢的解决方法,优点是您不需要任何额外的包。诀窍是绘制箭头 (!) 但用小水平条代替箭头 (!!!)。这个不太直接的想法来自 R Wiki Tips并在此处作为已解决的示例进行复制。

假设您有一个“平均值”向量 avg和另一个“标准差”向量sdev , 它们的长度相同 n .让我们让横坐标只是这些“测量”的数量,所以 x <- 1:n .使用这些,这里是绘图命令:

plot(x, avg,
    ylim=range(c(avg-sdev, avg+sdev)),
    pch=19, xlab="Measurements", ylab="Mean +/- SD",
    main="Scatter plot with std.dev error bars"
)
# hack: we draw arrows but with very special "arrowheads"
arrows(x, avg-sdev, x, avg+sdev, length=0.05, angle=90, code=3)

结果是这样的:

example scatter plot with std.dev error bars

arrows(...)函数 length=0.05是以英寸为单位的“箭头”的大小,angle=90指定“箭头”垂直于箭杆,特别直观 code=3参数指定我们要在箭头的两端绘制一个箭头。

假设 sdev,对于水平误差线,以下更改是必要的矢量现在包含 x 中的错误值和 y值是纵坐标:

plot(x, y,
    xlim=range(c(x-sdev, x+sdev)),
    pch=19,...)
# horizontal error bars
arrows(x-sdev, y, x+sdev, y, length=0.05, angle=90, code=3)

关于r - 带误差线的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47514040/

相关文章:

r - R 中的二项式 TreeMap

python - 如何在 Pandas 中创建叠加条形图

r - 绘制密度差异语义数据集

r - 如何根据变量的另一个值添加新变量?

r - 如何在 R 包的 html 帮助页面中显示新闻?

使用数据的 R 日期列错误[数据 = =""] <- NA

r - 具有非完整网格的曲面图

r - R扩展名断开与NetLogo中扩展名目录的连接

r - 建议化学家 : Automate/Streamline his Voltammetry Data Graphing Code

python - 如何删除matplotlib、Python中以前的绘图?