【问题标题】:Plotting heatmap with R and clustering用 R 和聚类绘制热图
【发布时间】:2020-11-19 14:54:29
【问题描述】:

大家好,我正在尝试绘制热图想要聚类,情节和情节看起来不太好想要改变颜色我是新手谁能告诉我如何绘制具有相似模式的聚类值的热图聚集在一起 我的数据data_link

我尝试的只是尝试记录规范化数据并绘制图表

library(ggplot2)
library(reshape2)

mydata=read.table("Test_data", sep="\t", header=TRUE)
melted_cormat <- melt(mydata)
head(melted_cormat)
melted_cormat$new=log2(1+melted_cormat$value)
ggplot(data = melted_cormat, aes(x=variable, y=ID, fill=new)) + 
  geom_tile()

是否可以像下面一样增加每个值单元格的大小 image

请给我建议 谢谢

【问题讨论】:

    标签: r ggplot2 heatmap pheatmap


    【解决方案1】:

    您可以根据这些数据制作热图,但我认为这不是将这么多数据可视化的好方法。 mydata 中有 287 行,这意味着您的绘图中有 287 行。这将使各个行难以辨认,并且无法标记 y 轴。

    另一个问题是大约 99% 的值低于 1000,但最高值几乎是 6000。这意味着填充的缩放将非常不均匀。在较低的范围内很难看到很多细节。

    如果您想查看聚类,可以使用pheatmap 而不是ggplot2,我可能会在填充比例上进行对数转换以更好地显示细节。但是,在单个图上仅包含过多数据的问题仍然存在。

    mymatrix <- log(as.matrix(mydata[,-1]))
    mymatrix[mymatrix < 0] <- 0
    pheatmap::pheatmap(mymatrix)
    


    编辑

    如果你只绘制了前 10 行数据,你可以看到这更像是一张热图:

    pheatmap(as.matrix(mydata[1:10,-1]))
    

    或前 30 行:

    pheatmap(as.matrix(mydata[1:30,-1]))
    

    【讨论】:

    • 把我不起眼的两分钱放进去——不确定“太多数据”位——事实上,我们(我们的眼睛:)非常善于在最小限度上辨别微小的数据斑点空间。如果您已经阅读过 Tufte 的 The Visual Display of Quantitative Information,这将被称为高数据密度。 (以及个人笔记——如果你还没有读过这本书,那是一本great(!!)读物。
    • @Allan Cameron 谢谢你的回答,信息很清楚,是否有任何聚类方法我想要隔离值,如果它们有相似的行为,比如一个盒子,如果值为零,我想把特定的颜色放在零值
    • @ShrilaxmiMS 是的,这就是这个情节的作用。深蓝色方块是零值。
    • @Tjebo 我知道数据是可辨别的。我只是不认为这个情节提供了很多信息,特别是如果有人有兴趣在 y 轴上挑选任何一个人。感谢您的书提示 - 我还没有读过,但会检查一下。
    • 好的,但刚刚编辑了我的问题图,看起来像框,如果值为零,则放入其他颜色,我想对行进行聚类
    猜你喜欢
    • 2011-07-02
    • 2013-11-25
    • 1970-01-01
    • 2021-06-07
    • 2016-09-10
    • 2013-07-29
    • 2017-05-08
    • 1970-01-01
    • 2017-11-19
    相关资源
    最近更新 更多