Pet*_*Kim 6 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()
Run Code Online (Sandbox Code Playgroud)
这段代码的结果是:
我看不到 y 轴上的所有刻度。这是必要的,因为我需要查看哪些过滤器学习哪些信息。有什么方法可以正确显示 y 轴上的所有刻度吗?
kwargs从sns.clustermapget 传递到sns.heatmap,它有一个选项yticklabels,其文档说明(强调我的):
\n\n\n如果为 True,则绘制数据框的列名称。如果为 False,则不绘制列名称。如果是类似列表,则将这些替代标签绘制为 xticklabels。如果是整数,则使用列名称,但仅绘制每 n 个 label。如果 \xe2\x80\x9cauto\xe2\x80\x9d,请尝试密集绘制不重叠的标签。
\n
在这里,最简单的选项是将其设置为整数,这样它将绘制每个n标签。我们想要每个标签,所以我们想将其设置为1,即:
g = sns.clustermap(df, row_cluster=True, col_cluster=False, yticklabels=1)\nRun Code Online (Sandbox Code Playgroud)\n\n在您的完整示例中:
\n\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nimport pandas as pd\nimport numpy as np\n\ndf = pd.DataFrame(-np.random.randn(50,50), index=range(50), columns=range(50))\ng = sns.clustermap(df, row_cluster=True, col_cluster=False, yticklabels=1)\nplt.setp(g.ax_heatmap.yaxis.get_majorticklabels(), rotation=0) # ytick rotate\ng.cax.remove() # remove colorbar\n\nplt.show()\nRun Code Online (Sandbox Code Playgroud)\n\n\n
| 归档时间: |
|
| 查看次数: |
6008 次 |
| 最近记录: |