如何为 Seaborn Clustermap 添加标题?

14

我已经搜索过,但还没有发现如何向Seaborn Clustermap添加标题。

我尝试过:

plt.title('Title',loc='center')

但这会将标题添加到图例中,而不是主要的聚类图。

我还尝试过先创建一个轴对象,然后将标题添加到该对象中(这似乎对热图起作用),但问题在于聚类图不会绘制在这个轴对象上。它显然会绘制在它自己的对象上。

感谢任何帮助...

2个回答

18

你可以使用.fig.suptitle('你的标题')

想象一下Seaborn文档中用于clustermap的这个例子

import seaborn as sns
iris = sns.load_dataset("iris")
species = iris.pop("species")
g = sns.clustermap(iris)

您可以使用以下方式添加标题:

g = sns.clustermap(iris).fig.suptitle('Your Title') 

或者简单地说:

g.fig.suptitle('Your Title') 

然而,这会为整个图添加一个标题,而不是单个子图。如果您想为子图添加标题,请参见@Kiraly Sandor的解决方案。

输入图像描述

g.fig.suptitle('Figure Title')
g.ax_heatmap.set_title('Subplot Title')

1
感谢您提供这个全面的答案。 - agftrading
3
您可能还想使用 g.fig.subplots_adjust(top=.9) 调整 suptitle 的位置,否则图表和标题之间通常会有一个很大的丑陋间隙。我也喜欢使用 g.ax_col_dendrogram.set_title(),它可以在顶部树状图正上方直接添加标题。 - uut
感谢您的回答!如何更改字体大小? - Alexander Chervov

3

其中一种解决方案可能是这样的:绘图返回的对象具有一个名为ax_heatmap的方法,该方法具有一个set_title方法。如果您使用标题设置它,则您的绘图将具有一个标题:

import seaborn as sns
sns.set(color_codes=True)
iris = sns.load_dataset("iris")
species = iris.pop("species")
g = sns.clustermap(iris)
g.ax_heatmap.set_title('lalal')

然而,这种方法会在热力图上方添加一个标题,而不是整个图。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接