plt.figure(figsize=(11, 11))
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
plt.style.use('ggplot') # 使用ggplot的绘图风格
N = len(airline.columns)
angles = np.linspace(0, 2 * np.pi, N, endpoint=False) # 设置雷达图的角度,用于平分切开一个圆面 #从0,2pi,生成均匀的6个位置
angles = np.concatenate((angles, [angles[0]])) # 为了使雷达图一圈封闭起来 #这6个位置连起来
feature = airline.columns # 特征名称
fig = plt.figure()
ax = fig.add_subplot(1,1,1, polar=True) # 这里一定要设置为极坐标格式 #参数含义是 子图行数,子图列数,子图位置
ax.set_thetagrids(angles * 180 / np.pi, feature) # 画布上面每个定点的位置和添加每个特征的标签
# set_thetagrids方法用于设置极坐标角度网格线显示 ,参数为所要显示网格线的角度值列表和名字
ax.set_ylim(kmean_model.cluster_centers_.min(),
kmean_model.cluster_centers_.max()) # 设置雷达图的范围 #设置Y值的最大最小为聚类中心的最大最小值
plt.title('客户群特征分布图') # 添加标题
ax.grid(True) # 添加网格线
sam = ['r-', 'o-', 'g-', 'b-', 'p-'] # 样式,因为分五个群体,因此每个群体不用颜色
lab = []
for i in range(len(kmean_model.cluster_centers_)): # 依次绘制每个类中心的图像 ,一个个聚类中心开始
values = kmean_model.cluster_centers_[i] # 第一个聚类中心的值开始,
values = np.concatenate((values, [values[0]])) # 为了使雷达图一圈封闭起来,需要下面的步骤
ax.plot(angles, values, sam[i], linewidth=2) # 绘制折线图
ax.fill(angles, values, alpha=0.25) # 填充颜色
lab.append('客户群' + str(i)) # 图形重叠起来
plt.legend(lab)
plt.show() # 显示图形
在jupyter可以正常显示,在pycharm显示不出 逐条查 发现 invalid command name ".!navigationtoolbar2tk.!button2" |