如何在 seaborn 热图中用词汇填充 xticklabels?

How to populate the xticklabels with vocabulary in seaborn heatmap?

编写了一个小代码片段来显示我的示例语料库数据的折叠单热表示

语料库 = ['Time flies like an arrow.', 'Fruit flies like a banana.']

我想在下面的 x 轴热图中打印 vocabulary,而不是 numbering。 即 an、arrow、banana、flies、fruit, like, time intead of 1, 2,3,4,5,6 in x-axis

这是当前热图的输出。

目前我使用 xticklabels='auto'。我应该在这里使用什么来打印唯一词汇表?

这是我的代码片段

from sklearn.feature_extraction.text import CountVectorizer

import seaborn as sns

corpus = ['Time flies like an arrow.',
          'Fruit flies like a banana.']

one_hot_vectorizer = CountVectorizer(binary=True)

one_hot = one_hot_vectorizer.fit_transform(corpus).toarray()

sns.heatmap(one_hot, annot=True, cbar = False, xticklabels='auto', yticklabels=['Sentence1','Sentence 2'])

谢谢!

您可以使用 one_hot_vectorizer.get_feature_names() 然后将其传递给 xticklabels kwargs:

from sklearn.feature_extraction.text import CountVectorizer

import seaborn as sns

corpus = ['Time flies like an arrow.',
          'Fruit flies like a banana.']

one_hot_vectorizer = CountVectorizer(binary=True)

one_hot = one_hot_vectorizer.fit_transform(corpus).toarray()

xticklabels = one_hot_vectorizer.get_feature_names()
sns.heatmap(one_hot, annot=True, cbar = False, xticklabels=xticklabels, yticklabels=['Sentence1','Sentence 2'])

输出: