sns.clustermap滴答声丢失了

时间:2018-06-28 03:29:20

标签: matplotlib seaborn

我正在尝试可视化CNN文本分类模型中正在学习的过滤器。为此,我在卷积层之后提取了文本样本的特征图,对于3号过滤器,我得到了一个(filter_num)*(length_of_sentences)个大小的张量。

df = pd.DataFrame(-np.random.randn(50,50), index = range(50), columns= range(50))
g= sns.clustermap(df,row_cluster=True,col_cluster=False)
plt.setp(g.ax_heatmap.yaxis.get_majorticklabels(), rotation=0) # ytick rotate
g.cax.remove() # remove colorbar
plt.show()

此代码导致:

heatmap

  

在y轴上看不到所有刻度的地方。这是必要的   因为我需要查看哪些过滤器可以学习哪些信息。在那儿   有什么方法可以正确显示y轴上的所有刻度线?

1 个答案:

答案 0 :(得分:1)

来自kwargs

sns.clustermap传递给sns.heatmap,后者具有选项yticklabels,其选项documentation表示(强调我的意思):

  

如果为True,则绘制数据框的列名称。如果为False,则不要绘制列名。如果类似列表,则将这些替代标签绘制为xticklabels。 如果是整数,请使用列名,但仅绘制每n个标签。如果为“自动”,请尝试密集绘制不重叠的标签。

在这里,最简单的选择是将其设置为整数,这样它将绘制每个n标签。我们需要每个标签,因此我们希望将其设置为1,即:

g = sns.clustermap(df, row_cluster=True, col_cluster=False, yticklabels=1)

在您的完整示例中:

import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

df = pd.DataFrame(-np.random.randn(50,50), index=range(50), columns=range(50))
g = sns.clustermap(df, row_cluster=True, col_cluster=False, yticklabels=1)
plt.setp(g.ax_heatmap.yaxis.get_majorticklabels(), rotation=0)  # ytick rotate
g.cax.remove()  # remove colorbar

plt.show()

enter image description here