连续刻度填充和分类填充在一起

时间:2013-11-19 21:16:03

标签: 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    |  No Gap
2   |  2012-03-01  |  55    |  No Gap

我想绘制一个使用MEAN连续缩放的热图,但我想在CATEGORY值为“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

有没有办法覆盖“Gap”实例的填充?谢天谢地。

1 个答案:

答案 0 :(得分:1)

如果您不想担心任何真正的NA值,可以将相应的MEAN值设置为NA,然后在na.value中指定scale_fill_gradient {1}}:

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")