带状图显示均值 + 标准差 [r]
Stripplot showing mean+sd [r]
您好,我想绘制一个显示均值+标准差的条带图。我无法显示箱线图,因为我的值少于 5 个,所以我想使用均值和 sd。我的问题是我无法计算组内的均值和 sd,而是我得到两个均值,这两个均值在两个组中都表示并且与段相同。
require(lattice)
stripplot(l ~ Medium, parameters,
ylab=list(expression("lag phase - h"),cex=1.5),
xlab=list("Medium", cex=1.5),
auto.key=list(columns=2, rectangles=T, points=F, pch=16, at=NULL ),
ylim=c(-2,15),
up=parameters$l+parameters$sd.l,
lo=parameters$l-parameters$sd.l,
panel=function(x,y,up,lo,...){
xj=jitter(as.numeric(x), factor=0.5)
panel.stripplot(xj,y,pch=16 , alpha=0.5 , factor=0.2,
cex=1.2 , ...)
panel.abline(h=0,col="black",...)
panel.arrows(x0=xj, y0=lo,
x1=xj, y1=up,code=3,
angle=90, length=0.05
,alpha=0.5)
panel.dotplot(x=x, y=tapply(y,x,mean), col="red")
panel.segments(x0=x,x1=x,y0=mean(y)-sd(y),y1=mean(y)+sd(y),col="red")
}
)
如果您以 Medium
为条件,即 ~l|Medium
而不是 l~Medium
,您可以计算面板函数中每个水平的均值和标准差。
例如
stripplot(~Sepal.Length|Species,iris,
panel=function(x,y,...) {
m=mean(x)
panel.stripplot(x,y,...)
panel.stripplot(m,y,pch="|",cex=2,col=2)
}
)
否则,您可以使用 by
或 aggregate
或类似方法为 stripplot
之外的每个水平计算平均值和标准差,然后将它们添加到图中。
您好,我想绘制一个显示均值+标准差的条带图。我无法显示箱线图,因为我的值少于 5 个,所以我想使用均值和 sd。我的问题是我无法计算组内的均值和 sd,而是我得到两个均值,这两个均值在两个组中都表示并且与段相同。
require(lattice)
stripplot(l ~ Medium, parameters,
ylab=list(expression("lag phase - h"),cex=1.5),
xlab=list("Medium", cex=1.5),
auto.key=list(columns=2, rectangles=T, points=F, pch=16, at=NULL ),
ylim=c(-2,15),
up=parameters$l+parameters$sd.l,
lo=parameters$l-parameters$sd.l,
panel=function(x,y,up,lo,...){
xj=jitter(as.numeric(x), factor=0.5)
panel.stripplot(xj,y,pch=16 , alpha=0.5 , factor=0.2,
cex=1.2 , ...)
panel.abline(h=0,col="black",...)
panel.arrows(x0=xj, y0=lo,
x1=xj, y1=up,code=3,
angle=90, length=0.05
,alpha=0.5)
panel.dotplot(x=x, y=tapply(y,x,mean), col="red")
panel.segments(x0=x,x1=x,y0=mean(y)-sd(y),y1=mean(y)+sd(y),col="red")
}
)
如果您以 Medium
为条件,即 ~l|Medium
而不是 l~Medium
,您可以计算面板函数中每个水平的均值和标准差。
例如
stripplot(~Sepal.Length|Species,iris,
panel=function(x,y,...) {
m=mean(x)
panel.stripplot(x,y,...)
panel.stripplot(m,y,pch="|",cex=2,col=2)
}
)
否则,您可以使用 by
或 aggregate
或类似方法为 stripplot
之外的每个水平计算平均值和标准差,然后将它们添加到图中。