首页 文章

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

提问于
浏览
2

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

  • 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

相关问题