【发布时间】:2017-03-30 20:44:34
【问题描述】:
我正在尝试让 geom_area 具有取决于 Y 轴值的双色。
例如,如果我们有一个最大 X 值为 50 的 geom_area,我希望填充颜色在低于 10 时为蓝色,在高于 10 时为红色。
样本数据;
df <- data.frame(
y = sample(1:50),
x = sample(1:50)
)
到目前为止,我设法得到的最接近的是使用以下代码;
ggplot(data = df, aes(x = x)) +
geom_area(aes(y = y),fill = "red") +
geom_ribbon(aes(ymin = 0, ymax = ifelse(y >= 10,10,y)),fill = "blue")
这几乎可以满足我的要求,但问题是水平分割并未完全穿过 geom_area,因为当下一个值低于最大值时,功能区的边缘会直接到达下一个点,这会扰乱分裂。
这正是代码告诉它的内容,所以我必须使用错误的方法来创建颜色分割,但无法弄清楚如何正确地做到这一点。
【问题讨论】:
-
This question/answer 可能会有所帮助