热线电话:13121318867

登录
2019-02-25 阅读量: 808
尝试使用热图添加颜色条时的AttributeError

我正在尝试绘制热图来说明属性之间的相关性。当我尝试将颜色条添加到图中时出现错误。这是代码和图像:

def housing_heatmap(data=housing_copy):
columns = data.select_dtypes(exclude=
'object').columns
corr_matrix = data.corr()

fig, ax = plt.subplots(figsize=(
8, 8))
ax.matshow(corr_matrix, cmap=
'jet')

ax.set_xticks(range(len(columns)))
ax.set_yticks(range(len(columns)))
ax.set_xticklabels(columns)
ax.set_yticklabels(columns)
plt.setp(ax.get_xticklabels(), rotation=
45, ha='left', rotation_mode='anchor')
plt.colorbar(corr_matrix)

fig.tight_layout()
plt.show()
return None


housing_heatmap()

此代码在生成图像时出错。这是图像:

在此输入图像描述

这是由线引起的错误:

plt.colorbar(corr_matrix)
AttributeError: 'DataFrame' object has no attribute 'autoscale_None'

有没有办法可以为热图添加颜色条而不会产生此错误?

解决办法:需要将图像传递给plt.colorbar,而不是矩阵本身:

def housing_heatmap(data= housing_copy):
columns = data.select_dtypes(exclude=
'object').columns
corr_matrix = data.corr()

fig, ax = plt.subplots(figsize=(
8, 8))
mat_plot = ax.matshow(corr_matrix, cmap=
'jet')

ax.set_xticks(range(len(columns)))
ax.set_yticks(range(len(columns)))
ax.set_xticklabels(columns)
ax.set_yticklabels(columns)
plt.setp(ax.get_xticklabels(), rotation=
45, ha='left', rotation_mode='anchor')
plt.colorbar(mat_plot)

fig.tight_layout()
plt.show()

housing_heatmap()

colorbar固定

0.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子