gpt4 book ai didi

r - 带误差线的散点图

转载 作者:行者123 更新时间:2023-12-02 04:55:01 35 4
gpt4 key购买 nike

如何在 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/13032777/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com