为什么还是会生成两个figure对象
时间: 2023-07-05 10:19:18 浏览: 38
如果你仍然发现代码会生成两个 Figure 对象,那么可能是因为在之前的代码中已经生成了 Figure 对象,而新的代码中没有关闭之前生成的 Figure 对象。在这种情况下,你可以在新代码执行前先关闭之前生成的 Figure 对象,例如执行 `plt.close('all')` 命令即可关闭所有的 Figure 对象。修改后的代码如下:
```
import matplotlib.pyplot as plt
colors = ['r', 'g', 'b', 'y', 'm']
labels = ['第一类客户', '第二类客户', '第三类客户', '第四类客户', '第五类客户']
# 关闭之前的 Figure 对象
plt.close('all')
fig, axs = plt.subplots(1, 5, figsize=(15, 5), subplot_kw=dict(projection='polar'))
# 循环绘制五条折线
for i in range(centers.shape[0]):
data1 = centers[i, :]
axs[i].plot(angle, data1, color=colors[i], label=labels[i])
axs[i].set_xticks(angle[:-1])
axs[i].set_xticklabels(['L', 'R', 'F', 'M', 'C'])
# 添加标题
axs[i].set_title('第{}类客户'.format(i + 1))
# 保存和展示
plt.subplots_adjust(wspace=0.5)
plt.savefig('航空公司客户聚类结果.png')
plt.show()
```
这样就能确保只生成一个 Figure 对象了。