Matplotlib相关热图中缺少标签

问题描述 投票:5回答:1

我正在玩UCI的机器学习库中的abalone dataset。我想使用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()

successful heatmap

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

df = pd.get_dummies(df, columns = ['sex'])

resulting correlation matrix

所以,如果我重复使用之前的代码生成一个漂亮的热图,它应该没问题,对吧?错误!

What dumpster fire is this?

所以我的问题是,我的标签在哪里,我如何让它们回来?!

谢谢!

python-3.x matplotlib heatmap correlation imshow
1个回答
3
投票

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

ax1.set_xticks(np.arange(len(labels)))
ax1.set_yticks(np.arange(len(labels)))

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

这导致以下情节:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.