R 连续比例填充和分类填充一起使用

R 连续比例填充和分类填充一起使用,r,ggplot2,R,Ggplot2,我有一个如下所示的数据帧: >View(gaps) ID | MONTH | MEAN | CATEGORY 1 | 2012-01-01 | 20 | No Gap 1 | 2012-02-01 | 30 | No Gap 1 | 2012-03-01 | 5 | Gap 2 | 2012-01-01 | 55 | No Gap 2 | 2012-02-01 | 50 |

我有一个如下所示的数据帧:

>View(gaps)

ID  |  MONTH       |  MEAN  |  CATEGORY
1   |  2012-01-01  |  20    |  No Gap
1   |  2012-02-01  |  30    |  No Gap
1   |  2012-03-01  |  5     |  Gap
2   |  2012-01-01  |  55    |  No Gap
2   |  2012-02-01  |  50    |  No Gap
2   |  2012-03-01  |  55    |  No Gap
>p <- ggplot(gaps, aes(x=MONTH, y=ID, fill = MEAN))
>p <- p + geom_tile()
>p <- p + scale_fill_gradient(low="firebrick3", high="darkolivegreen2", space="Lab")
>p
我想用平均值绘制一个连续缩放的热图,但我想在类别值为“间隙”的地方覆盖此填充,使瓷砖简单、不变、单色红色

设置如下所示:

>View(gaps)

ID  |  MONTH       |  MEAN  |  CATEGORY
1   |  2012-01-01  |  20    |  No Gap
1   |  2012-02-01  |  30    |  No Gap
1   |  2012-03-01  |  5     |  Gap
2   |  2012-01-01  |  55    |  No Gap
2   |  2012-02-01  |  50    |  No Gap
2   |  2012-03-01  |  55    |  No Gap
>p <- ggplot(gaps, aes(x=MONTH, y=ID, fill = MEAN))
>p <- p + geom_tile()
>p <- p + scale_fill_gradient(low="firebrick3", high="darkolivegreen2", space="Lab")
>p
>p

是否有方法覆盖“间隙”实例的填充?谢谢。

如果您没有任何真正的
NA
值需要担心,您可以将相应的
平均值设置为
NA
,然后在
比例填充梯度中指定
NA.value

ggplot(gaps, aes(x=MONTH, y=ID, fill = ifelse(CATEGORY=="Gap", NA, MEAN))) +
  geom_tile() +
  scale_fill_gradient(low="firebrick3", high="darkolivegreen2",
                      space="Lab", na.value="red")