【发布时间】:2012-05-20 16:23:26
【问题描述】:
哪个包最适合仅对行排序的热图/图像,但不显示任何树状图或其他视觉混乱(只是一个二维彩色网格,两个轴上都有自动命名标签) .除了基本的数字排序,我不需要花哨的聚类。数据是我想要可视化的范围 (0,0.21) 内的 39x10 数字表。
我搜索了 SO(参见 this)和 R 站点,并尝试了一些。查看R Graphical Manual 以查看出色的可搜索屏幕截图和相应软件包列表。
软件包的范围令人困惑——哪一个是首选的热图(例如 ggplot2 是用于大多数其他绘图的)?以下是我目前发现的:
- base::image - 不好,轴上没有名称标签,没有排序/聚类
- base::heatmap - 选项比以下选项更难理解:
- pheatmap::pheatmap - 很棒,但似乎无法关闭 树状图? (任何黑客?)
- ggplot2 people use geom_tile, as Andrie points out
- gplots::heatmap.2,ref - 似乎 受到生物技术人员的青睐,但对我的目的来说太过分了。 (不 与 ggplot* 或 Wickham 教授的关系)
- plotrix::color2D.matplot 也存在
base::heatmap 很烦人,即使使用 args heatmap(..., Colv=NA, keep.dendro=FALSE) 它仍然会在行上绘制不需要的树状图。
现在我将使用 pheatmap(..., cluster_cols=FALSE, cluster_rows=FALSE) 并手动预排序我的表,就像这个人:Order of rows in heatmap?
附录:要显示每个单元格内的值,请参阅:display a matrix, including the values, as a heatmap。我不需要那个,但它很好。
【问题讨论】:
-
我不完全确定你在问什么。您是在问如何在 ggplot 中制作热图吗?如果是这样,您需要使用
geom_tile() -
@Andrie:我只是在问你们都推荐哪个包(我如何在没有聚类的情况下进行排序?没有树状图?)。我不认为 ggplot2 可以做热图,但是在你提到 geom_tile 之后我发现learnr article.
-
如果你只是想排序,为什么不使用
sort()? -
(我知道如何手动排序,但我认为我们可以通过一些热图 fns 免费获得它。)不管怎样,您为我的用例推荐哪个包?
-
我将使用
hclust或kmeans进行聚类,或者仅使用sort,然后使用ggplot2进行绘图。