【问题标题】:How to populate the xticklabels with vocabulary in seaborn heatmap?如何在 seaborn 热图中用词汇填充 xticklabels?
【发布时间】:2021-04-10 06:13:08
【问题描述】:

编写了一个小代码 sn-p 来显示我的样本语料库数据的折叠单热表示

corpus = ['时间飞逝如箭', '水果像香蕉一样飞。']

我想在下面的 x 轴热图中打印 词汇,而不是 编号。 即一个、箭头、香蕉、苍蝇、水果等,x 轴上 1、2、3、4、5、6 的时间

这是当前热图的输出。

目前我使用 xticklabels='auto'。我应该在这里使用什么来打印独特的词汇?

这是我的代码 sn-p

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'])

谢谢!

【问题讨论】:

    标签: python python-3.x scikit-learn seaborn heatmap


    【解决方案1】:

    您可以使用从矢量化器中提取名称 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'])
    

    输出:

    【讨论】:

      猜你喜欢
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 2021-01-01
      • 2020-04-10
      • 1970-01-01
      • 2017-08-18
      相关资源
      最近更新 更多