我正在使用ggplot和geom_tile绘制连续变量。默认情况下,它会使用连续的颜色条进行绘制。类似于这样的:
data <- cbind(ID = 1:100, a = runif(100, 0, 1), b = runif(100, 0, 1), c = runif(100, 0, 1))
data <- as.data.frame(data)
data <- melt(data, id.vars = "ID")
colnames(data) <- c("ID", "Parameter", "Value")
p <- ggplot(data, aes(y = ID, x = Parameter)) + geom_tile(aes(fill = Value))
print(p)
这将生成以下绘图。 现在,我实际上希望颜色对应于离散的、不规则的间隔。例如,[0, 0.2) 是红色,[0.2, 0.5) 是蓝色,而 [0.5, 1.0] 是紫色。我认为这很简单,但我似乎无法弄清楚如何实现这一点。有什么建议吗?
cut
或Hmisc::cut2
函数来完成的工作,代码可能看起来像aes(fill = cut(Value, breaks = c(0, .2, .5, 1), include.lowest = TRUE))
,然后在scale_fill_manual
中设置颜色/图例名称。 - aosmith