首页 > 解决方案 > 为R中两条特定线之间的区域着色

问题描述

我正在尝试根据条件填充颜色,如果 x 值大于 y ,则为一种颜色,反之亦然。我有一个基于两条线的阶梯图,我需要显示颜色编码。

任何帮助将不胜感激。

在此处输入图像描述

 geom_ribbon(data=df, aes(x = datetime, 
                                ymin=min_value-10,
                                ymax=min_value-20,
                                fill=x > y)

我正在使用geom 功能区,颜色编码在日期时间序列中没有按预期工作。一种颜色完全掩盖了另一种颜色,并且不按逻辑工作。

标签: rdata-visualization

解决方案


不久前我遇到了类似的问题。根据记忆,问题在于fill美学不能在几何层内改变。我的解决方案是对数据集进行分区并分别绘制每个分区。

在没有测试数据的情况下...

library(tidyverse)

tibble(
  x=seq(0, 1, 0.05), 
  ymin=1, 
  ymax=2, 
  z=x < 0.26 | x > 0.74
) %>% 
  ggplot() +
  geom_ribbon(data=d %>% filter(z), aes(x=x, ymin=ymin, ymax=ymax, fill="red")) +
  geom_ribbon(data=d %>% filter(!z), aes(x=x, ymin=ymin, ymax=ymax, fill="blue"))

在此处输入图像描述


推荐阅读