我正在尝试使用已经计算的置信区间和最小值和最大值生成R中的箱图。对于时间1,2,3,4,5(x轴(,我有MN,它表示5个元素的数组,每个元素描述时间点的平均值。我还有CI1、CI2、MINIM和MAXM,每一个都是5个元素的数组,每个时间步长一个,代表上CI、下CI、最小值和最大值。我想在每个时间步长生成5个方框图条形图。
我已经尝试了通常的方框图功能,但我可以让它与已经计算的CI和最小最大一起工作
如果该方法适用于普通的绘图函数,那就太好了,尽管ggplot也可以。
由于您尚未发布数据,我将使用内置的iris
数据集,保留前4列。
data(iris)
iris2 <- iris[-5]
函数boxplot
计算它使用的统计信息,然后调用bxp
进行打印,并将这些计算值传递给它
如果您想要一组不同的统计数据,则必须计算它们并手动将它们传递给bxp
。
我假设CI是指正常的95%置信区间。为此,您需要首先计算标准误差和平均值。
s <- apply(iris2, 2, sd)
mn <- colMeans(iris2)
ci1 <- mn - qnorm(0.95)*s
ci2 <- mn + qnorm(0.95)*s
minm <- apply(iris2, 2, min)
maxm <- apply(iris2, 2, max)
现在让boxplot
创建bxp
使用的数据结构,即matrix
。
bp <- boxplot(iris2, plot = FALSE)
并用前面计算的值填充矩阵。
bp$stats <- matrix(c(
minm,
ci1,
mn,
ci2,
maxm
), nrow = 5, byrow = TRUE)
最后,绘制它。
bxp(bp)