客户价值分析中ValueError: The number of FixedLocator locations (6), usually from a call to set_ticks, does

照着教程,做到最后一步结果时总是显示不了,

import pandas as pd  

import os

import numpy as np

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei']   # 用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False   # 用来正常显示负号

csvFile='./out'+os.sep+'KMeans_cluster.csv'

data=pd.read_csv(csvFile,encoding='utf-8')

customers_names=pd.Series(['C'+str(i) for i in range (1,6)])

data=pd.concat([customers_names,data],axis=1)

data.columns=['类别名称','聚类个数','ZL:客户关系长度','ZR:消费时间间隔','ZF:消费频率','ZM:飞行里程','ZC:平均折扣系数']

print(data)

kinds=data.iloc[:,0]

print('\n>>>kinds:')

print(kinds)

centers=pd.concat([data.iloc[:,2:],data.iloc[:,2]],axis=1)

centers=np.array(centers)

print('\n>>>centers:')

print(centers)

#出错部分

labels=data.iloc[:,2:].columns

n=len(labels)

 

 

angles=np.linspace(0,2*np.pi,n,endpoint=False)

angles=np.concatenate((angles,[angles[0]]))

fig=plt.figure()

ax=fig.add_subplot(111,polar=True)

floor=np.floor(centers.min())

ceil=np.ceil(centers.max())

for i in np.arange(floor,ceil+0.5,0.5):

    ax.plot(angles,[i]*(n+1),'--',lw=0.5,color='black')

ax.spines['polar'].set_visible(False) 

ax.grid() 

ax.set_yticks([])

ax.set_theta_zero_location('N') 

ax.set_thetagrids(angles * 180 /np.pi,labels)

for i in range(len(kinds)):

    ax.plot(angles,centers[i],lw=2,label=kinds[i])

plt.legend(loc='lower right',bbox_to_anchor=(1.1,0.1))

plt.show()时出现如下错误

1d4e15548cd34e238388359ea9f07f52.png

 原因是调用的数量不匹配

labels=data.iloc[:,2:].columns

n=len(labels)

后加上一行

labels=data.iloc[:,1:].columns

问题解决

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值