【问题标题】:heatmap.2 (gplots package) - how to remove annoying lines in some cells?heatmap.2 (gplots package) - 如何去除某些单元格中恼人的线条?
【发布时间】:2012-12-27 15:29:53
【问题描述】:

我正在尝试生成一个包含每一行和每一列的简单热图 用黑线隔开。然而,由于某种原因,这只发生 对于第一个和最后一个颜色。我colorpanel() 中的中间颜色 命令有一条我想要的附加水平和垂直线 使用heatmap.2() 绘制时摆脱。关于我为什么看到这些线条的任何建议?

library(gplots)

my.matrix <- cbind(func.1 = c(1,2,2,1,1,3,1,2,3,1,1,2,2,3,1), func.2 =
c(2,2,1,1,3,3,1,1,2,2,1,3,3,2,1))

mycol <- colorpanel(n=3,"green","grey","red")

heatmap.2(my.matrix,Rowv=FALSE, Colv="Rowv", col=mycol, trace="both",
tracecol="black", key=FALSE, symm=FALSE, vline=NULL, hline=NULL)

我得到的情节链接:https://dl.dropbox.com/u/8900971/heatmap.png

【问题讨论】:

  • heatmap.2() 和 colorpanel() 在 gplots 包中
  • @user1974415 如果使用trace="row" 和中间一行呢?
  • trace="row" 没有解决问题
  • @user1974415 请使用?heatmap.2 并查看这个。 agstudy 为您指出了在哪里看,但您自己做一些腿部工作。
  • 我确实查过了...以及尝试 R 中的新代码。但是将 heatmap.2 中的跟踪参数更改为“行”仍然不会删除中心的水平线所有灰色单元格。我不明白的部分是为什么只有一些彩色单元格有这条水平线

标签: r heatmap bioconductor


【解决方案1】:

可能有一种方法可以做你想做的事,但是当我读到你的最后一条评论时,我想到了 ggplot2。您没有说它必须是 heatmap.2 解决方案,所以这里有一个 ggplot2 解决方案。虽然我假设 gplots 版本很有趣:

library(reshape2, ggplot2)
dat <- melt(my.matrix)

ggplot(dat, aes(x=Var2,y=Var1))+ 
    geom_tile(aes(fill = value),colour='black') +
    scale_fill_gradientn(colours=c("green","gray","red"),
    values  = rescale(c(min(dat$value), 1000, max(dat$value)))) +
    coord_equal() 

【讨论】:

  • 不,heatmap.2 不是关键。非常感谢您提供了一个非常好的替代解决方案(这也促使我阅读更多关于 ggplot2 的信息)
猜你喜欢
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 1970-01-01
相关资源
最近更新 更多