Matplotlib相关热图中缺少标签

Mah*_*Mai 5 matplotlib heatmap correlation python-3.x imshow

我正在使用UCI机器学习存储库中的鲍鱼数据集。我想使用matplotlib和imshow显示相关的热图。

我第一次尝试,效果很好。绘制并标记了所有数字变量,请参见此处:

fig = plt.figure(figsize=(15,8))
ax1 = fig.add_subplot(111)
plt.imshow(df.corr(), cmap='hot', interpolation='nearest')
plt.colorbar()
labels = df.columns.tolist()
ax1.set_xticklabels(labels,rotation=90, fontsize=10)
ax1.set_yticklabels(labels,fontsize=10)
plt.show()
Run Code Online (Sandbox Code Playgroud)

成功的热图

后来,我在分类变量上使用了get_dummies(),如下所示:

df = pd.get_dummies(df, columns = ['sex'])
Run Code Online (Sandbox Code Playgroud)

结果相关矩阵

因此,如果我重用以前的代码来生成一个不错的热图,那应该没事吧?错误!

这是什么垃圾箱火?

所以我的问题是,我的标签在哪里去了,我该如何找回它们?

谢谢!

jda*_*amp 6

要恢复标签,您可以强制 matplotlib 使用足够的 xticks,以便可以显示所有标签。这可以通过添加来完成

ax1.set_xticks(np.arange(len(labels)))
ax1.set_yticks(np.arange(len(labels)))
Run Code Online (Sandbox Code Playgroud)

在你的陈述ax1.set_xticklabels(labels,rotation=90, fontsize=10)和之前ax1.set_yticklabels(labels,fontsize=10)

这导致以下情节:

在此处输入图片说明