绘制单点及其范围

我试图从矩阵中绘制一些数据点及其标准差,但在绘制后者时遇到了麻烦。

我的工具是:

  1. 一个矩阵,其中的数据点绘制在正确 xlim 定义的 x 轴内的 x 坐标处;
  2. 一个包含多个 y 任意坐标的向量,用于绘制高度,只是不使它们重叠;
  3. 标准偏差线长度的向量,将在数据点周围水平显示。

是的,最终看起来像是飞碟入侵。

我可以轻松地将给定高度的点一个一个地绘制出来 - 这是我想要的方式。

问题在于为每个点添加标准偏差水平线。

有人知道怎么做吗?

x<-matrix(c(1:4,NA,10:16),nrow=4,ncol=4)
y<-seq(0.001,0.006,0.001)
std.dev<-c(runif(7,0.1,0.5),runif(7,0.5))

plot(0,xlim=c(min = 0,max(x),na.rm=T)+0.001),ylim = c(0,0.016),type = "n",xlab = "My x",yaxt = "n",ylab ="")

points(x = x[1,2],y = y[1],pch = 21,bg = "red",col = "red")
dzc361 回答:绘制单点及其范围

在使用 base R 时,令人惊讶地发现 R 不提供对误差线的“内置”支持。您可能需要咨询其他软件包。

对于 base R,解决方法是使用 arrow() 函数并将“箭头角度”设置为 90 度。

注意:我不得不更改给定的数据定义,因为它引发了错误。也看看这部分代码。

我以垂直模式绘制误差线。您可以轻松地将其调整为单杠。我这样做是出于演示原因,以避免重叠误差条。 使用您的完整数据可以更轻松地消除冲突。

x<-matrix(c(1:7,NA,10:16),nrow=4,ncol=4)      # adapted to ensure same length
y<-seq(0.001,0.016,0.001)                         # adapted to ensure same length
std.dev<-c(runif(7,0.1,0.5),runif(7,0.5))

plot(0,xlim=  c(min = 0,max(x,na.rm=T))           # had to fix xlim definition,ylim = c(-1,1)                               # changed to show give std.dev,type = "n",xlab = "My x",yaxt = "n",ylab ="")

points(x = x,y = y,pch = 21,bg = "red",col = "red")  # set x and y to show all

# --------------- add arrows with "flat head --------------------------
arrows( x0 = x,x1 = x,y0 = y-std.dev,y1 = y+std.dev   # center deviation on data point,code=3,angle=90      # set the angle for the head to emulate error bar,length=0.1)

这产生:

enter image description here

本文链接:https://www.f2er.com/62442.html

大家都在问