r - ggplot2:基于数据点分布的箱线图颜色渐变
问题描述
我有一个带有两个变量(“thalachh”和“输出”)的数据框。“输出”变量只能采用两个值(0 或 1)之一。我正在尝试创建两个箱线图(基于“输出”的值),其中“填充”是基于“thalachh”数据点分布的梯度。
我尝试过的代码如下所示,但这并没有产生预期的结果:
w <- ggplot(data,aes(x=output, y = thalachh,fill=thalachh))+geom_boxplot()+facet_wrap(~output)+scale_fill_gradient2()
w
“fill=thalachh”并没有改变上面代码中生成的图,但是如果将其更改为“fill=output”,那么箱线图将使用基于“输出”的渐变比例填充 - 所以我不确定为什么这对于“fill = thalachh”不起作用。
我正在尝试生成一个类似于下图所示的图。有没有一种简单的方法可以使用 ggplot2 做到这一点?
我使用的数据框如下:
data <- structure(list(thalachh = c(150L, 187L, 172L, 178L, 163L, 148L,
153L, 173L, 162L, 174L, 160L, 139L, 171L, 144L, 162L, 158L, 172L,
114L, 171L, 151L, 161L, 179L, 178L, 137L, 178L, 162L, 157L, 123L,
157L, 152L, 168L, 140L, 188L, 152L, 125L, 160L, 170L, 165L, 148L,
151L, 142L, 180L, 148L, 143L, 182L, 172L, 180L, 156L, 115L, 160L,
149L, 151L, 146L, 175L, 172L, 158L, 186L, 185L, 174L, 159L, 130L,
156L, 190L, 132L, 165L, 182L, 143L, 175L, 170L, 163L, 147L, 154L,
202L, 186L, 165L, 161L, 166L, 164L, 184L, 154L, 179L, 170L, 160L,
178L, 122L, 160L, 151L, 156L, 158L, 122L, 175L, 168L, 169L, 159L,
138L, 111L, 157L, 147L, 162L, 173L, 178L, 145L, 179L, 194L, 163L,
115L, 131L, 152L, 162L, 159L, 154L, 173L, 133L, 161L, 155L, 170L,
168L, 162L, 172L, 152L, 122L, 182L, 172L, 167L, 179L, 192L, 143L,
172L, 169L, 121L, 163L, 162L, 162L, 153L, 163L, 163L, 96L, 140L,
126L, 105L, 157L, 181L, 173L, 142L, 116L, 143L, 149L, 171L, 169L,
150L, 138L, 125L, 155L, 152L, 152L, 131L, 179L, 174L, 144L, 163L,
169L, 166L, 182L, 173L, 173L, 108L, 129L, 160L, 147L, 155L, 142L,
168L, 160L, 173L, 132L, 114L, 160L, 158L, 120L, 112L, 132L, 114L,
169L, 165L, 128L, 153L, 144L, 109L, 163L, 158L, 142L, 131L, 113L,
142L, 155L, 140L, 147L, 163L, 99L, 158L, 177L, 141L, 111L, 150L,
145L, 161L, 142L, 157L, 139L, 162L, 150L, 140L, 140L, 146L, 144L,
136L, 97L, 132L, 127L, 150L, 154L, 111L, 174L, 133L, 126L, 125L,
103L, 130L, 159L, 131L, 152L, 124L, 145L, 96L, 109L, 173L, 171L,
170L, 162L, 156L, 112L, 143L, 132L, 88L, 105L, 166L, 150L, 120L,
195L, 146L, 122L, 143L, 106L, 125L, 125L, 147L, 130L, 126L, 154L,
182L, 165L, 160L, 95L, 169L, 108L, 132L, 117L, 126L, 116L, 103L,
144L, 145L, 71L, 156L, 118L, 168L, 105L, 141L, 152L, 125L, 125L,
156L, 134L, 181L, 138L, 120L, 162L, 164L, 143L, 130L, 161L, 140L,
146L, 150L, 144L, 144L, 136L, 90L, 123L, 132L, 141L, 115L, 174L
), output = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L)), row.names = c(NA, 303L), class = "data.frame")
解决方案
推荐阅读
- c# - 在 LiteDB 中插入 C# POCO 类的问题
- javascript - 有没有办法重新格式化方程以从公式中获取未知变量?
- sql - Impala 表中列中双精度值的最小长度
- r - 日期从电子表格转移到 R
- java - Java - 没有重复的线程安全哈希集合,崩溃后可恢复
- postgresql - 不可变函数作为 CHECK 约束中的表达式
- python - java.io.IOException:无法运行程序“python”(在目录“D:\Doc\module\subject”中):CreateProcess 错误=2,
- javascript - 如何在 Bootstrap 中使用固定侧边栏实现平滑滚动?
- java - java中过滤器流的隐式契约是什么?
- junit - mapstruct 对象的 Junit 测试