【发布时间】:2016-09-08 06:46:35
【问题描述】:
将颜色映射到ggplot2中的线条时,例如:
x = data.frame(x = 1:6, y = c(0,0,10,10,0,0))
ggplot(x, aes(x, y, col=y)) + geom_line(size=5)
.. 线条颜色映射到每个线段的第一个数据点。是否有任何简单的方法可以让 ggplot 来计算两个点的平均值(即斜线都缩放为 5 的颜色)?
【问题讨论】:
-
计算两点之间的平均值并使用该列分配颜色怎么样?
-
当然可以,但是在为多行设置子集时会变得很棘手,具体取决于您的数据结构。我想我很懒,但我只是想知道是否有 ggplot 解决方案..
-
有了给定的数据,我认为这两个答案都在起作用。
temp <- mutate(x, foo = (lead(y, default = 0) + y) / 2); ggplot(temp, aes(x = x, y = y, col = foo)) + geom_line(size=5)会做同样的工作。如果您有更复杂的情况,我认为值得在您的问题中添加更多描述。