将矩阵(包括值)显示为热图
我想做的是采用这个矩阵:
> partb
0.5 1.5 1a 1b -2 -3
A1FCLYRBAB430F 0.26 0.00 0.74 0.00 0.00 0.00
A1SO604B523Q68 0.67 0.33 0.00 0.00 0.00 0.00
A386SQL39RBV7G 0.00 0.33 0.33 0.33 0.00 0.00
A3GTXOXRSE74WD 0.41 0.00 0.08 0.03 0.05 0.44
A3OOD9IMOHPPFQ 0.00 0.00 0.33 0.00 0.33 0.33
A8AZ39QM2A9SO 0.13 0.54 0.18 0.13 0.00 0.03
然后制作一个热图,其中包含现在彩色单元格中的每个值。
制作热图很容易:
> heatmap( partb, Rowv=NA, Colv=NA, col = heat.colors(256), margins=c(5,10))
但是对于我来说,我无法弄清楚如何将值放入每个单元格中。
我缺少什么?当然,这是很常见的事情。
What I'd like to do is take this matrix:
> partb
0.5 1.5 1a 1b -2 -3
A1FCLYRBAB430F 0.26 0.00 0.74 0.00 0.00 0.00
A1SO604B523Q68 0.67 0.33 0.00 0.00 0.00 0.00
A386SQL39RBV7G 0.00 0.33 0.33 0.33 0.00 0.00
A3GTXOXRSE74WD 0.41 0.00 0.08 0.03 0.05 0.44
A3OOD9IMOHPPFQ 0.00 0.00 0.33 0.00 0.33 0.33
A8AZ39QM2A9SO 0.13 0.54 0.18 0.13 0.00 0.03
And then make a heatmap that has each of the values in the now colored cells.
Making a heatmap is easy:
> heatmap( partb, Rowv=NA, Colv=NA, col = heat.colors(256), margins=c(5,10))
But for the life of me I can't figure out how to put the value in each of the cells.
What am I missing? Surely this is a common thing.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
例如:
For example:
尝试
gplots 中的
包。 cellnote 和 notecol 参数控制放置在单元格中的文本。您可能还需要heatmap.2
dendrogram = "none"
。Try
heatmap.2
from thegplots
package. The cellnote and notecol parameters control the text placed in cells. You'll probably wantdendrogram = "none"
as well.您可以使用
图像
和文本
。我个人喜欢fields
包中的image.plot
,因为它在侧面添加了图例,但您也可以将它与image
一起使用。例如
You can use
image
andtext
. I personally likeimage.plot
from thefields
package, because it adds a legend on the side, but you can use it withimage
too.So for instance
来自
lattice
包的levelplot()
将为您提供颜色图例。不完全是你想要的,但值得思考。levelplot()
from thelattice
package will give you a color legend. Not exactly what you want but something to think about.还有另一种更简单的方法来制作带有值的热图。您可以使用 pheatmap 来执行此操作。
这会给你一个像这样的情节
There is another simpler way to make heatmaps with values. You can use pheatmap to do this.
This will give you a plot like this
在 lcgong 之后(不幸的是我可以发表直接评论),纯粹的换位导致了颜色表示的问题。因此,我再次旋转矩阵并且它起作用了。您可以按如下方式找到该功能。请确保所选热图色标适用于 3 到 11 之间的 n。如果需要,您可以在此处选择另一个色标。
Following lcgong (unfortunately I can post a direct comment) the pure transposition led to problems with the color representation. Accordingly, I rotated the matrix again and it worked. You can find the function as follows. Please make sure that the selected heatmap color scale works with n between 3 and 11. If desired, you can simply select another one here.
要更新,stats::heatmap() 现在在基础 R 中执行此函数
To update, stats::heatmap() now performs this function in base R