r - 在 R heatmap() 函数中增加行高

标签 r data-visualization

我有一个包含数百行和数十列的矩阵,并希望绘制一个热图。如果我使用 native R 函数:

heatmap(matrix(sample(1:10000),nrow=1000,ncol=10))

我得到一个带有难以辨认的行标题的数字。我假设生成的图像与当前绘图设备的规范相匹配。我想控制行的高度,即使这无法在我当前的设备上显示。简单地写入一个高大的 PNG 只是在图像上方/下方添加空格:
png( '/looks_the_same_with_whitespace.png', width=500, height=1500)
heatmap(matrix(sample(1:10000),nrow=1000,ncol=10))
dev.off()

有没有一种干净的方法可以做到这一点,也许是让 R 认为我有一个非常高的显示器?来自受支持的库的函数也是一个很好的答案。

最佳答案

不久前,我也遇到了同样的问题。 heatmap.2函数来自 gplots包解决了这个问题。但是,我不太明白查看这么多基因(或 rowlabs)有什么好处。但正如你所问,你会做这样的事情:关键是改变 layout (参见 ?heatmap.2, ?layout)的热图,它在绘图设备上的 2x2 网格上绘制热图(?layout 中的示例更好地解释了这一点)。之后,您可能想要更改 cexrowlabs通过更改 cexRow因此。您的情况可能需要对这些值进行一些调整才能获得所需的结果。

library(gplots)

row.scaled.expr <- matrix(sample(1:10000),nrow=1000,ncol=10)

png( 'heatmap_without_whitespace_smaller_row_lab.png', width=500, height=1500)
heatmap.2(row.scaled.expr, dendrogram ='row',
                 Colv=FALSE, col=greenred(800), 
                 key=FALSE, keysize=1.0, symkey=FALSE, density.info='none',
                 trace='none', colsep=1:10,
                 sepcolor='white', sepwidth=0.05,
                 scale="none",cexRow=0.2,cexCol=2,
                 labCol = colnames(row.scaled.expr),                 
                 hclustfun=function(c){hclust(c, method='mcquitty')},
                 lmat=rbind( c(0, 3), c(2,1), c(0,4) ), lhei=c(0.25, 4, 0.25 ),                 
                 )
dev.off()

关于r - 在 R heatmap() 函数中增加行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040240/

相关文章:

r - 提取给定行号上方和下方的 n 行(变量 n)

python - 可视化未出现在 Tensorflow-PyCharm IDE 中

Python:带颜色条的条形图

R&Gephi : edges in a network are not properly imported using the rgexf package

java - 搜索 Java 库以构建与数据交互的应用程序

r - 如何使用 ggplot2 在 y 轴截距(y 轴)上添加一个点

替换基于数据框列表的数据框的列值

r - 如何在百分比条形图中显示平均值和误差条

r - 在 R 图中使用 data.frame 的行名称?

r - 使用 `` magrittr : :`%>%` `` 时 magrittr 管道出错