如何调整使用seaborn绘制的热图列的宽度

问题描述 投票:0回答:2

我正在使用seaborn绘制热图,我花了大约一天的时间尝试调整列的宽度,因为目前它们非常宽。从我自己的搜索中,我找到了调整热图大小的方法,或者调整列分隔线但不调整列本身的大小。使用seaborn可以做到这一点还是我应该使用其他工具?

这是我正在使用的一个简单命令:

sns.heatmap(mydata, cmap='Reds')

heatmap seaborn column-width
2个回答
0
投票

因此,在花费更多时间之后,我意识到我可以使用 pheatmap 轻松完成此操作。您将需要使用“cellwidth”参数来控制宽度。例如,

pheatmap(mydata, cellwidth = 100)
。这个问题曾被问到 pheatmap 这里 [链接] reduce width of columns on a heatmap.2plot 之前,但我最初想使用seaborn来生成热图。我仍然有兴趣知道seaborn是否有办法控制宽度。


0
投票

我遇到了和你一样的问题。我有一个快速修复方法,即用空列填充您的表格。您的表格将是

input_data
,原始列是
columns_to_cluster
。然后,您可以根据所需的宽度调整最小列数(默认设置为 10)。不理想,但它对我有用。示例代码如下:

data_to_plot = input_data[columns_to_cluster]
if len(columns_to_cluster) < 10:

    empty_columns = 10 - len(columns_to_cluster)
    empty_df = pd.DataFrame(
        np.zeros((data_to_plot.shape[0], empty_columns)),
        columns=["" for i in range(empty_columns)],
    )
    data_to_plot = pd.concat([data_to_plot, empty_df], axis=1)

sns.clustermap(
    data_to_plot,
    col_cluster=False,
    figsize=(10,10),
    method="ward",
    metric="euclidean",
)
© www.soinside.com 2019 - 2024. All rights reserved.