我正在使用seaborn绘制热图,我花了大约一天的时间尝试调整列的宽度,因为目前它们非常宽。从我自己的搜索中,我找到了调整热图大小的方法,或者调整列分隔线但不调整列本身的大小。使用seaborn可以做到这一点还是我应该使用其他工具?
这是我正在使用的一个简单命令:
sns.heatmap(mydata, cmap='Reds')
因此,在花费更多时间之后,我意识到我可以使用 pheatmap 轻松完成此操作。您将需要使用“cellwidth”参数来控制宽度。例如,
pheatmap(mydata, cellwidth = 100)
。这个问题曾被问到 pheatmap 这里 [链接] reduce width of columns on a heatmap.2plot 之前,但我最初想使用seaborn来生成热图。我仍然有兴趣知道seaborn是否有办法控制宽度。
我遇到了和你一样的问题。我有一个快速修复方法,即用空列填充您的表格。您的表格将是
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",
)