学习《机器学习实战》kNN时,在使用Matplotlib画图时,发现了一个Warining
MatplotlibDeprecationWarning:
Adding an axes using the same arguments as a previous axes currently reuses the earlier instance. In a future version, a new instance will always be created and returned. Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
"Adding an axes using the same arguments as a previous axes "
原因可能是在创建画板fig=plt.figure()后就设置了图标题和坐标轴标签,将图标题和坐标轴标签在定义了子图ax=fig.add_subplot(111)后再设置就不会出现这个Warining了。代码如下
定义子图前设置标题和坐标轴标签,有Warining
def show_1(datingDataMat,datingLabels):
fig=plt.figure()
plt.title('散点分析图')
# 用来正常显示中文标签
mpl.rcParams ['font.sans-serif']=['KaiTi']
mpl.rcParams ['font.serif']=['KaiTi']
plt.xlabel('玩视频游戏所耗时间百分比')
plt.ylabel('每周消费的冰淇淋公升数')
ax=fig.add_subplot(111)
#ax.set_title('散点分析图')
# ax.set_xlabel('玩视频游戏所耗时间百分比')
# ax.set_ylabel('每周消费的冰淇淋公升数')
ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))
plt.show()
定义子图后设置标题和坐标轴标签,无Warining
def show_1(datingDataMat,datingLabels):
fig=plt.figure()
#plt.title('散点分析图')
# 用来正常显示中文标签
mpl.rcParams ['font.sans-serif']=['KaiTi']
mpl.rcParams ['font.serif']=['KaiTi']
#plt.xlabel('玩视频游戏所耗时间百分比')
#plt.ylabel('每周消费的冰淇淋公升数')
ax=fig.add_subplot(111)
ax.set_title('散点分析图')
ax.set_xlabel('玩视频游戏所耗时间百分比')
ax.set_ylabel('每周消费的冰淇淋公升数')
ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels))
plt.show()