2024-09-27 00:18:11 发布
网友
我正在使用seaborn.clustermap创建有序的热图。我希望能够分别保存树状图和热图。有没有办法把这三者分开
我创建热图/树状图组合的代码如下
sns.clustermap(datadissimilarity, method='average', figsize=(40,40))
^{}返回一个“clustergrid”,其中包含作为“轴”的子图:g.ax_col_dendrogram,g.ax_row_dendrogram, g.ax\u热图, g.ax\u颜色, g.ax\u行颜色andg.ax u cbar`
g.ax_col_dendrogram
g.ax_row_dendrogram,
,
and
可以使用这些轴计算所需区域的边界框。另请参见Save a subplot in matplotlib的第二个答案,关于如何组合区域以选择感兴趣的确切区域
import seaborn as sns; sns.set_theme(color_codes=True) iris = sns.load_dataset("iris") species = iris.pop("species") g = sns.clustermap(iris) fig = g.fig for ax, filename in zip([g.ax_col_dendrogram, g.ax_row_dendrogram, g.ax_heatmap], ['col_dendrogram', 'row_dendrogram', 'heatmap']): extent = ax.get_tightbbox(fig.canvas.renderer).transformed(fig.dpi_scale_trans.inverted()) fig.savefig(f'{filename}.png', bbox_inches=extent)
在对g.savefig()的调用中,只能保存图using ^{}的一部分
g.savefig()
树状图和热图位于单独的Axes对象中,您可以使用g.ax_row_dendrogram、g.ax_col_dendrogram和g.ax_heatmap访问这些对象。您可以使用体形变换获取它们的位置(以英寸为单位),以便传递到bbox_inches
Axes
g.ax_row_dendrogram
g.ax_heatmap
bbox_inches
iris = sns.load_dataset("iris") species = iris.pop("species") g = sns.clustermap(iris) for ax,name in zip([g.ax_heatmap, g.ax_col_dendrogram, g.ax_row_dendrogram], ['heatmap.png','col_dendrogram.png','row_dendrogram.png']): bbox = ax.get_window_extent() inches = g.fig.dpi_scale_trans.inverted().transform_bbox(bbox) g.savefig(name, bbox_inches=inches)
^{} 返回一个“clustergrid”,其中包含作为“轴”的子图:
g.ax_col_dendrogram
,g.ax_row_dendrogram,
g.ax\u热图,
g.ax\u颜色,
g.ax\u行颜色and
g.ax u cbar`可以使用这些轴计算所需区域的边界框。另请参见Save a subplot in matplotlib的第二个答案,关于如何组合区域以选择感兴趣的确切区域
在对} 的一部分
g.savefig()
的调用中,只能保存图using ^{树状图和热图位于单独的
Axes
对象中,您可以使用g.ax_row_dendrogram
、g.ax_col_dendrogram
和g.ax_heatmap
访问这些对象。您可以使用体形变换获取它们的位置(以英寸为单位),以便传递到bbox_inches
相关问题 更多 >
编程相关推荐