r - R 箱线图,已计算均值、置信区间和最小值最大值
问题描述
我正在尝试使用已经计算的置信区间以及最小值和最大值在 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
a使用的数据结构matrix
。
bp <- boxplot(iris2, plot = FALSE)
并用之前计算的值填充矩阵。
bp$stats <- matrix(c(
minm,
ci1,
mn,
ci2,
maxm
), nrow = 5, byrow = TRUE)
最后,绘制它。
bxp(bp)
推荐阅读
- vue.js - VuePress/Vue:使用 GitLab CI 构建期间未使用的插件
- python - Python面板按钮回调函数
- php - exec("mysqldump") 返回 2 但该命令在命令行中工作
- javascript - Webrtc 媒体流正在工作,但数据通道关闭(根本不启动)
- python - “正面”出现的概率是多少?
- python - 有没有办法从 Python 使用 IBM 查询加速器?
- php - 如何设置每行 4 个项目?(PHP/HTML/CSS) 非表
- c++ - Returning from exe entry point does not terminate the process on Windows 10
- teamcity - TeamCity 构建功能“拉取请求”是否会自动运行合并构建?
- java - 并行解析n个JSON对象并形成聚合json的优化方法