r - 根据一列用 CI 画三条线
问题描述
我的数据是
x_mean w_mean m_mean se LLCI ULCI
1.6667 3.1000 3.1565 0.1164 2.9273 3.3856
2.6667 3.1000 3.2456 0.0683 3.1110 3.3801
4.0000 3.1000 3.3644 0.1070 3.1539 3.5750
1.6667 4.0000 2.9842 0.0727 2.8410 3.1273
2.6667 4.0000 3.2712 0.0490 3.1747 3.3677
4.0000 4.0000 3.6539 0.0774 3.5015 3.8064
1.6667 4.5560 2.8777 0.0933 2.6941 3.0614
2.6667 4.5560 3.2870 0.0666 3.1559 3.4182
4.0000 4.5560 3.8328 0.1136 3.6092 4.0563
我想在一个图中绘制三个由 w_mean 区分的单独的线(w 只有三个唯一值),其中 x = x_mean,y = m_mean。我还想为这些行添加置信区间。我可以使用 ggplot 来实现吗?谢谢您的帮助。如果我需要澄清任何细节,请告诉我。
解决方案
第一步,绘制 3 条线,每条线w_mean
很简单。如果aesthetic
定义颜色(以及其他)是一个因素,ggplot
将自动分隔线条。
library(ggplot2)
g <- ggplot(df1, aes(x_mean, m_mean, color = factor(w_mean))) +
geom_line()
g
现在添加置信带并使图例标题更漂亮。
g + geom_ribbon(aes(ymin = LLCI, ymax = ULCI,
fill = factor(w_mean)),
alpha = 0.25,
color = NA,
show.legend = FALSE) +
labs(color = "w_mean")
数据
df1 <-
structure(list(x_mean = c(1.6667, 2.6667, 4, 1.6667, 2.6667,
4, 1.6667, 2.6667, 4), w_mean = c(3.1, 3.1, 3.1, 4, 4, 4, 4.556,
4.556, 4.556), m_mean = c(3.1565, 3.2456, 3.3644, 2.9842, 3.2712,
3.6539, 2.8777, 3.287, 3.8328), se = c(0.1164, 0.0683, 0.107,
0.0727, 0.049, 0.0774, 0.0933, 0.0666, 0.1136), LLCI = c(2.9273,
3.111, 3.1539, 2.841, 3.1747, 3.5015, 2.6941, 3.1559, 3.6092),
ULCI = c(3.3856, 3.3801, 3.575, 3.1273, 3.3677, 3.8064, 3.0614,
3.4182, 4.0563)), class = "data.frame", row.names = c(NA,
-9L))
推荐阅读
- file - 目录列表中的 powershell 文件大小总计
- python - Python 和机器人框架在日志中没有 INFO 或 WARN
- c# - 使用 JQuery ajax 在 div 中插入控制器数据作为段落
- python - 如何在 Python 中将相同的字典值组合在一起并计算值?
- android - 如何使用 Alternatives=true 从 Google Maps 路线中找出最短路线?
- powershell - 使用 WindowServerCore 在 Docker 中没有 PowerShell 帮助
- mysql - 如何在三个月的窗口中只保留一行数据并删除其他数据?
- visual-studio - 提取 Visual Studio 2017 产品密钥
- excel - Excel 使用 SUMIF 计算多列的总数
- google-sheets - 谷歌表格;任意范围作为字符串