雷达图的绘制 (Python,matplotlib)

在学习K-means聚类分析的过程,发现在客户特征分析图上的代码展示是没有的,所以这里对分析得到的结果进行雷达图的展示。
1、原始数据:
这里写图片描述
数据共有5类(customer0–customer5),数据标签共5个(L, R, F, M, C)
2、绘图:

def result_pic(result):
    """
    雷达图的绘制
    :param result: 分类数据
    :return: 雷达图
    """
    # 解析出类别标签和种类
    labels = ['L', 'R', 'F', 'M', 'C']
    kinds = list(result.iloc[:, 0])
    
    # 由于在雷达图中,要保证数据闭合,这里就再添加L列,并转换为 np.ndarray
    result = pd.concat([result, result[['L']]], axis=1)
    centers = np.array(result.iloc[:, 1:])
    
    # 分割圆周长,并让其闭合
	n = len(labels)
    angle = np.linspace(0, 2 * np.pi, n, endpoint=False)
    angle = np.concatenate((angle, [angle[0]]))
	
	# 绘图
    fig = plt.figure()
    ax = fig.add_subplot(111, polar=True)    # 参数polar, 以极坐标的形式绘制图形

	# 画线
    for i in range(len(kinds)):
        ax.plot(angle, centers[i], linewidth=2, label=kinds[i])
        # ax.fill(angle, centers[i])  # 填充底色
	
	# 添加属性标签
    ax.set_thetagrids(angle * 180 / np.pi, labels)
    plt.title('different kind')
    plt.legend(loc='lower right')
    plt.show()


if __name__ == '__main__':
    result = pd.read_csv('./data_7/cluster_center.csv', sep=',')
    result_pic(result)

结果展示:
这里写图片描述
图比较丑,后面再改吧

参考:matplotlib 雷达图2

  • 10
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值