r - 绘制多条线并在这些线上添加整体置信带
问题描述
test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
)
鉴于上述测试数据,我想做以下事情:
(1) 绘制与此类似的线:在同一图表上使用 ggplot2 将两个变量绘制为线
(2)为这些线条添加一个整体置信带(线条可以看作是点),类似这样:Find points over and under the confidence interval when using geom_stat / geom_smooth in ggplot2
我知道如何分开做,但不知道如何将它们组合在一个情节中。
解决方案
从这篇文章中,您可以检查其中一个答案geom_ribbon
是使用而不是geom_line
. 这应该回答(2)。关于(1),可以按照您在提到的链接中所说的相同方式绘制它。
让我们假设您希望将 var0 保留在 x 轴上,并相对于 var1 和 var2 进行绘图。
为此,您必须首先收集 var1 和 var2
test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
) %>%
gather(key="var",value="value",var1:var2)
这产生如下:
> head(test_data)
var0 var value
1 100.00000 var1 150.0000
2 85.67636 var1 146.4407
3 76.86862 var1 151.6061
4 79.46151 var1 143.6943
5 96.86709 var1 147.8999
6 91.20310 var1 157.2294
现在,要进行相应的绘图,您必须按新的组变量“var”(包含组“var1”和“var2”的名称)进行绘图,绘制geom_ribbon
上下界的功能区,并geom_line
调用绘制实际的线。
test_data %>%
ggplot(aes(x=var0,y=value,group=var)) +
geom_ribbon(aes(ymin=value*0.95,ymax=value*1.05),fill="grey70") +
geom_line()
这产生:
推荐阅读
- sql - 在序列函数 PrestoSQL 中使用子查询
- python - 如何将命令行参数传递给在 vscode 中运行的 pytest 测试
- javascript - 模态打开时使抽屉可见。反应原生
- google-data-studio - 基于其他计算字段创建计算字段
- java - 如何修复 GridLayout/GridBagConstraints 中的错误?
- python - Python Kivy UnicodeEncodeError
- gradle - Vaadin Gradle 插件:任务 vaadinBuildFrontend 失败并出现依赖错误
- excel - VBA在组合框中获取选定的形状名称
- windows - 在 electron-builder 之后找出当前正在运行的构建目标
- css - 动态解析 SCSS 规则中的图标字体代码