我正在生成多个热图以绘制为动画。我想重用不同热图的颜色键来显示随时间的变化。目前正在为每个热图重置密钥。
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
时,图表中缺少图例)
答案 0 :(得分:0)
使用limits
参数:
scale_fill_gradient(..., limits=c(3, 6.4))