【问题标题】:heatmap in R how to resize columns labels?R中的热图如何调整列标签的大小?
【发布时间】:2012-10-26 13:09:34
【问题描述】:

我有一个大约 4000 行和 100 列的 data.matrix。我正在制作数据的热图,例如:

data<-heatmap(data_matrix,Rowv=NA,Colv=NA,col=cm.colors(256),scale="column",margins=c(5,10))

但我遇到的问题是列中出现的标签过于分组,因此无法正确可视化它们。如何调整热图的大小以便查看列标签的值?我试图以pdf格式打印它,但它只出现一条黑色条纹。 谢谢

我包括一个热图图,我想看到的部分是右侧部分的标签,但它们靠得太近了。

【问题讨论】:

    标签: r heatmap


    【解决方案1】:

    首先,最好将输出直接放入 PDF 文件 - 您可以使用其他图像格式,但 PDF 是最好的,因为它是矢量输出,您可以随意缩放:

    pdf("Your-file.pdf", paper="a4", width=8, height=8)
    

    那么最好使用pheatmap( = pretty heatmap) 包。除了热图之外,它还可以使用颜色键制作更好的热图。最后,虽然pheatmap() 函数会在您有很多行时尝试减小标签大小,但是对于非常多的行它会失败。因此,我将下面的代码用于非常高但不太高的行数:

    library(pheatmap)   
    library(gplots)
    if (nrow(table) > 100) stop("Too many rows for heatmap, who can read?!")
    fontsize_row = 10 - nrow(table) / 15
    pheatmap(table, col=greenred(256), main="My Heatmap", cluster_cols=F, 
             fontsize_row=fontsize_row, border_color=NA)
    

    您可以更改fontsize_col 的列标签。您有许多有趣的选项,例如display_numbers,可以在热图的单元格内设置值。只需阅读?pheatmap

    这是pheatmap()命令默认参数生成的例子:

    最后请注意,太多的行在显示器上很容易阅读,但对打印毫无用处。

    【讨论】:

      【解决方案2】:

      在 Rstudio 中,您可以轻松调整图形窗口的大小,Rgui 也是如此。或者,如果您将绘图保存到文件中,您可以为图形使用更大的尺寸,例如调用pdfpng 时更大的widthheight

      【讨论】:

      • 我试过了,但没有结果。热图也不允许这些参数。你能举一个编码例子吗?谢谢
      • 不幸的是,调整大小几乎不是解决方案。也没有导出。
      【解决方案3】:

      您可以使用 cexRow = 和 cexCol =。

      您可以在 ??heatmap.2 中获取更多信息

      # Row/Column Labeling
      margins = c(5, 5),
      ColSideColors,
      RowSideColors,
      cexRow = 0.2 + 1/log10(nr),
      cexCol = 0.2 + 1/log10(nc),
      labRow = NULL,
      labCol = NULL,
      srtRow = NULL,
      srtCol = NULL,
      adjRow = c(0,NA),
      adjCol = c(NA,0),
      offsetRow = 0.5,
      offsetCol = 0.5,
      colRow = NULL,
      colCol = NULL
      

      【讨论】:

        【解决方案4】:

        如果您使用 pheatmap (https://www.rdocumentation.org/packages/COMPASS/versions/1.10.2/topics/pheatmap),您可以通过调整 cellheight 参数来展开这些标签。

        如果您在 R 笔记本中执行此操作,即使在运行代码时整个热图不会显示在输出窗口中,但当您使用 filename 参数将热图保存到计算机时,热图会自动计算输出文件的最佳大小,以便您的整个热图将显示在输出文件中。如果您不喜欢这个大小,您可以使用widthheight 参数进行调整,但您不太可能想要这样做。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-06-23
          • 1970-01-01
          • 2023-01-04
          • 2021-10-02
          • 1970-01-01
          • 1970-01-01
          • 2022-07-12
          • 1970-01-01
          相关资源
          最近更新 更多