ggplot,geom_tile:使用不规则的,用户定义的离散间隔绘制连续变量

时间:2015-09-02 21:09:40

标签: r ggplot2

我正在使用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)

这会产生以下图表。

Resulting plot

现在,我真正喜欢的是颜色对应于离散的,不规则的间隔。例如,[0,0.2)为红色,[0.2,0.5]为蓝色,[0.5,1.0]为紫色。我希望它很简单,但我似乎无法弄清楚如何实现这一目标。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

感谢@aosmith的解决方案。这是代码,以防它对某人有用。

p <- ggplot(data, aes(y = ID, x = Parameter)) 
p <- p + geom_tile(aes(fill = cut(Value, breaks = c(0, .2, .5, 1), include.lowest = TRUE)))
p <- p + scale_fill_manual(values = c("red", "blue", "green"),
                           labels = c("[0, 0.2)", "[0.2, 0.5)", "[0.5, 1.0]"),
                           name = "Stuff")
print(p)

这会产生以下图表。

Resulting plot