我在radial.plot中使用plotrix-package的R函数。有没有人知道一种直接的实现标准错误条的方法。即使在每个径向位置有多个数据点时,该解决方案也必须工作,这可能导致SE-bar部分重叠(见下图)。
现在这张图看起来如下:

使用代码:
library(plotrix)
ppp <- matrix(runif(1:16, 10, 60), nrow=2, ncol=8)
kl <- c(0, pi/4, pi/2, pi*0.75,pi, pi+pi/4,pi+pi/2, pi+pi*0.75)
plot_rt_soa7 <- radial.plot(ppp,rp.type="p",radial.pos=kl,
label.pos=kl,start=pi/2,
labels=1:8,radial.lim=c(-10,65),main="SOA 7")
legend(45,50,c("T-oben", "T-unten"),col=1:2,lty=1)错误条可能看起来像这样:(来自How to plot error bars in polar coordinates in python?)

任何帮助都将不胜感激。
发布于 2015-11-06 00:31:23
以下是一些基本代码,它将绘制“x”(与半径正交)和“y”(与半径平行)维度的错误条,以及中心值的一个点。它不使用plotrix包来绘制错误条,而是使用R基图形。您必须提供维度的错误,或者注释掉绘制不想要的错误的代码部分。对于线条权重、颜色、点颜色和点形状有几个图形参数。下面提供了一个示例图。
library(plotrix)
set.seed(10) # seed for reproducable graph
ppp <- matrix(runif(1:16, 10, 60), nrow=2, ncol=8)
kl <- c(0, pi/4, pi/2, pi*0.75,pi, pi+pi/4,pi+pi/2, pi+pi*0.75)
start <- pi/2 # know starting value for plotting points angularl
rad_low_lim <- -10 # used when computing values of the error lines and in plot limits
plot_rt_soa7 <- radial.plot(ppp,rp.type="p"
,radial.pos=kl
,label.pos=kl
,start=start
,labels=1:8
,radial.lim=c(rad_low_lim,65)
,main="SOA 7")
legend(40,120,c("T-oben", "T-unten"),col=1:2,lty=1)
# generating random error values for both x and y
error_ppp_y <- matrix(rnorm(16, 15, 5), nrow=2, ncol=8)
error_ppp_x <- matrix(rnorm(16, 10, 3), nrow=2, ncol=8)
bar_cols <- c('blue','green') # colors for bars
lwds <- c(4,2) # line weights for bars
pts_cols <- c('black','red') # colors for points
pts_pch <- c(19,17) # point pch
# loop over the number of rows (T-oben and T-unten)
for(j in 1:2){
# loop over the observations
for(i in 1:ncol(ppp)){
# plotting the errors of the 'y' value
# center value is determined and errors are rotated to make
# parallel to the radius
lines(c(ppp[j,i]+error_ppp_y[j,i]-rad_low_lim,ppp[j,i]-error_ppp_y[j,i]-rad_low_lim)*cos(kl[i]+start)
,c(ppp[j,i]+error_ppp_y[j,i]-rad_low_lim,ppp[j,i]-error_ppp_y[j,i]-rad_low_lim)*sin(kl[i]+start)
,lwd=lwds[j]
,col=bar_cols[j]
)
# plotting the 'x' errors that are orthognal to the radius
# points are the "center" with the error values rotated to make them orthognal to the radius
# comment out if not desired
lines((ppp[j,i]-rad_low_lim)*cos(kl[i]+start)+c(error_ppp_x[j,i],-error_ppp_x[j,i])*cos(kl[i])
,(ppp[j,i]-rad_low_lim)*sin(kl[i]+start)+c(error_ppp_x[j,i],-error_ppp_x[j,i])*sin(kl[i])
,lwd=lwds[j]
,col=bar_cols[j]
)
# plotting points for the center
# comment out if not desired
points((ppp[j,i]-rad_low_lim)*cos(kl[i]+start)
,(ppp[j,i]-rad_low_lim)*sin(kl[i]+start)
,col=pts_cols[j]
,pch=pts_pch[j]
)
}
}

https://stackoverflow.com/questions/33454122
复制相似问题