我正在尝试使用ComplexHeatmap在R中创建一个热图。我使用以下代码部分创建了一个热图:
Heatmap(gsea.heatmap.df,
cluster_rows = FALSE,
cluster_columns = FALSE,
show_row_dend = FALSE,
show_column_dend = FALSE,
col = colorRamp2(c(-1, 0, 1), c("red", "white", "blue")),
heatmap_legend_param = list(color_bar = "continuous",
at = c(0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, -1),
labels = c("1", "0.9", "0.8", "0.7", "0.6", "0.5", "0.4", "0.3", "0.2", "0.1", "0")))
生成的热图如下所示:
但是,热图的每个单元格的尺寸都被拉伸了。我试图找出哪个参数用于控制每个单元格的尺寸,但我找不到它。理想情况下,我希望每个单元格都是一个完美的正方形。有没有一种方法可以方便地改变热图中单元格的尺寸?
发布于 2018-03-18 07:47:09
它默认适合图像允许的宽度,该宽度可以随着您调整大小而改变。我不相信ComplexHeatmap的开发者会让用户控制每个单元格的宽度。您可以随意使用width
参数,该参数控制单个热图的宽度,看看是否有帮助。但我怀疑,当你调整绘图大小时,情况会有所不同。
发布于 2019-06-19 21:02:22
为了完善德诺沃的回答,
它默认为适合图像允许的宽度,该宽度可以随着您调整大小而改变。
这是ComplexHeatmap的documentation中给出的建议
在由ComplexHeatmap生成的热图中,所有热图组件都具有绝对大小,并且只有热图主体的大小(或单元的大小)是可变的(换句话说,如果您更改最终图形设备的大小,例如,如果您在绘图时拖动图形窗口,则仅调整热图主体的大小),这意味着整个绘图的大小与热图中的行数或列数线性相关。这意味着我们实际上可以拟合一个线性模型
y = a*x + b
,其中y
是整个图的高度,x
是行数。
https://stackoverflow.com/questions/49341605
复制相似问题