geom_tile热图,具有基于因子的不同高填充颜色

时间:2012-04-19 16:27:26

标签: r ggplot2 heatmap

我有兴趣在 ggplot2 中使用geom_tile构建热图,该热图使用基于因子的不同渐变高颜色。

下图根据xy_type创建了各个图块的蓝色或红色,但没有渐变。

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=factor(xy_type))) + 
  scale_fill_manual(values=c("blue", "red"))

下面的图表不使用xy_type因子来选择颜色,但我会根据xy_avg_value获得单个组渐变。

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=xy_avg_value))

是否有混合这两个图的技术?我可以使用facet_grid(xy_type ~ .)使用渐变创建此数据的单独图。由于这最终将成为一个地图(x~y坐标),我想找到一种方法在一个geom_tile地图中一起显示不同的渐变。

1 个答案:

答案 0 :(得分:20)

一般来说, ggplot2 不允许单一类型的多个比例(即多个颜色或填充比例),所以我怀疑这不是(容易)的。

我能想出的最接近的近似值是:

df <- data.frame(expand.grid(1:5,1:5))
df$z <- runif(nrow(df))
df$grp <- rep(letters[1:2],length.out = nrow(df))

ggplot(df,aes(x = Var1,y = Var2,fill = factor(grp),alpha = z)) + 
    geom_tile() + 
    scale_fill_manual(values = c('red','blue'))

enter image description here

但是要获得一个明智的传奇会很难。