热图中的行顺序?
采取以下代码:
heatmap(data.matrix(signals),col=colors,breaks=breaks,scale="none",Colv=NA,labRow=NA)
如何提取、预计算或重新计算生成的热图中的行顺序?有没有办法将 hclust(dist(signals)) 的输出注入到热图函数中?
Take the following code:
heatmap(data.matrix(signals),col=colors,breaks=breaks,scale="none",Colv=NA,labRow=NA)
How can I extract, pre-calculate or re-calculate the order of the rows in the heatmap produced? Is there a way to inject the output of hclust(dist(signals))
into the heatmap function?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
感谢杰西和保罗的反馈。我编写了以下排序函数,希望对其他人有用:
Thanks for the feedback, Jesse and Paolo. I wrote the following ordering function which will hopefully be useful to others:
有多种选择。如果运行
?heatmap
,您将看到可以调整的各种参数。也许最简单的方法是设置 Rowv=NA ,它应该抑制行重新排序,然后传入矩阵,其中行已经按照您想要的顺序排列。但您也可以通过Rowv
和hclustfun
等手动提供聚类函数或树状图...There are a variety of options. If you run
?heatmap
you'll see the various parameters you can tweak. Maybe the easiest is to setRowv=NA
which should suppress row reordering, and then pass in the matrix with the rows already in the order you want. But you can also manually provide a clustering function, or dendrograms, viaRowv
andhclustfun
etc...我相信这篇文章可能有用:
How does R heatmap order rows by default ?
以下面的矩阵为例:
您可以使用参数
Rowv
和Colv
覆盖行和列的顺序。您可以使用这些树状图来覆盖顺序。例如,您可以使用函数hclust
计算顺序,然后将其作为树状图传递给heatmap
:给出:
Hclust heatmap
默认的heatmap函数使用了一个额外的步骤,但是,通过参数
reorderfun = function(d, w) reorder(d, w )
,它根据行/列均值尽可能地对树状图进行重新排序。您可以通过此附加步骤重现默认顺序。因此,要获得与heatmap
相同的顺序,您可以执行以下操作:输出与简单的
heatmap(m)
相同:其 sstatic.net/3EPYS.png" rel="nofollow noreferrer">默认热图
在此示例中,列恰好没有重新排序,但行却重新排序。最后,为了简单地检索顺序,您可以将热图分配给变量并获取输出。
I believe this post might be useful:
How does R heatmap order rows by default?
Take the following matrix for example:
You can override the order of the rows and columns with the parameters
Rowv
andColv
. You can override the order with these as dendrograms. For instance, you can calculate an order using the functionhclust
, then pass that toheatmap
as a dendrogram:Gives:
Hclust heatmap
The default heatmap function uses one additional step, however, through the parameter
reorderfun = function(d, w) reorder(d, w)
, which reorders the dendrogram as much as possible bases on row/column mean. you can reproduce the default order with this additional step. So to get the same ordering asheatmap
, you can do:Which gives the same output as simply
heatmap(m)
:Default heatmap
In this example the columns happen to not get reordered, but the rows do. Finally, to simply retrieve the order you can assign the heatmap to a variable and get the output.
我同意杰西的观点。对于您的问题,请查看热图函数的
Rowv
、distfun
和hclustfun
参数。如需更多选择,请使用
gplots
包中的函数heatmap.2
、Heatplus
包中的heatmap_plus
和
可能会有一些用处。pheatmap
包中的 pheatmapI agree with Jesse. For your problem take a look at the
Rowv
,distfun
andhclustfun
arguments of the heatmap function.For more choices the functions
heatmap.2
in thegplots
package,heatmap_plus
in theHeatplus
package andpheatmap
in thepheatmap
package could be of some use.pheatmap 将允许您指定用于进行聚类的方法,接受与 hclust 相同的参数。
pheatmap will allow you to specify the method that it uses to do the clustering, accepting the same arguments as hclust.