labels = ['ZL','ZR','ZF','ZM','ZC'] legen = ['客户群' + str(i + 1) for i in cluster_center.index] #客户群命名 lstype = ['-','--',(0, (3, 5, 1, 5, 1, 5)),':','-.'] kinds = list(cluster_center.iloc[:, 0]) # 由于雷达图要保证数据闭合,因此再添加L列,并转换为np.ndarray cluster_center = pd.concat([cluster_center, cluster_center[['ZL']]], axis=1) centers = np.array(cluster_center.iloc[:, 0:]) # 分割圆周长 n = len(labels) angle = np.linspace(0, 2 * np.pi, n, endpoint=False) #angle = np.concatenate((angle, [angle[0]])) #并让其闭合 # 绘图 fig = plt.figure(figsize=(8,6)) ax = fig.add_subplot(111, polar=True) # 以极坐标的形式绘制图形 plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 # 画线 for i in range(len(kinds)): ax.plot(angle, centers[i], linestyle=lstype[i], linewidth=2, label=kinds[i]) # 添加属性标签 angle = np.linspace(0, 2 * np.pi, n, endpoint=False) ax.set_thetagrids(angle * 180 / np.pi, labels) plt.title('客户特征分析雷达图') plt.legend(legen) plt.show()
时间: 2024-01-28 14:04:54 浏览: 107
turnto1234.rar_flagc8z_papero8y_stoodou1_转置+分类
这段代码是用来绘制一个雷达图的。雷达图是一种多维数据可视化方式,可以展示多个变量在不同维度上的数值大小。具体的绘图步骤如下:
1. 定义需要展示的变量和属性标签。这里定义了5个变量,分别为ZL、ZR、ZF、ZM和ZC,以及每个客户群的命名。
2. 定义线条样式。这里定义了4种不同的线条样式,分别为实线、虚线、点划线和点线组合。
3. 将数据转换为np.ndarray格式,并添加一个L列,确保数据闭合。
4. 定义极坐标,并绘制雷达图。
5. 将每个客户群的数据以不同的线条样式绘制在雷达图上。
6. 添加属性标签,并设置图表标题和图例。
7. 展示图表。
需要注意的是,这段代码中的变量和数据是需要根据具体的数据情况进行修改的,如果你遇到了任何问题,可以提供更多的上下文和代码,以便我能够更好地帮助你。
阅读全文