R / ggplot:重复使用多个热图的颜色键

时间:2014-05-01 22:14:35

标签: r ggplot2 heatmap

我正在生成多个热图以绘制为动画。我想重用不同热图的颜色键来显示随时间的变化。目前正在为每个热图重置密钥。

Heatmap1:(http://i.imgur.com/iPIDY82.png) Heatmap2:(http://i.imgur.com/GvNfQal.png

我想要"总范围"在两个热图中都是一样的。所以上面的Heatmap1应该有一个更轻的"更轻的"颜色。

我目前的代码如下:

mat  <- matrix(unlist(row), ncol=4, byrow=TRUE)
matm <- melt (mat)
p    <- ggplot (data=matm) +
        geom_tile (aes(x=X1, y=X2, fill=value), color="white")  +
        scale_fill_gradient (low="steelblue1", high="steelblue4")

row包含16个单元格中的每一个的数据。我将它转换为矩阵,然后绘制相同的。但是不同的行具有不同的范围,并且每次都重置范围。

我尝试了以下修改:

[1]在scale_fill

中添加中断
scale_fill_gradient (low="steelblue1", high="steelblue4",breaks=seq(3,6.4,by=0.05))

[2]将数据剪切成因子并在scale_fill

中添加中断
row_cut <- cut (as.numeric(row), breaks=seq(3,6.4,by=0.05), right=FALSE)
mat     <- matrix(unlist(row_cut), ncol=4, byrow=TRUE)
matm    <- melt (mat)
p       <- ggplot (data=matm) +
           geom_tile (aes(x=X1, y=X2, fill=value), color="white")  +
           scale_fill_brewer(palette = "Blues","intensity", breaks=seq(3,6.4,by=0.05))

但这些修改都没有帮助。

(旁白:当我向breaks添加scale_fill时,图表中缺少图例)

1 个答案:

答案 0 :(得分:0)

使用limits参数:

scale_fill_gradient(..., limits=c(3, 6.4))