Python:雷达图的实现

版权声明:未经本人同意不得转载! https://blog.csdn.net/yanpenggong/article/details/85093547

雷达图

雷达图在数据挖掘项目中多用于企业分析或者价值分析的环节可视化。雷达图分析法是一种系统分析的有效方法,它是从项目中自身建立的多方面分析企业的经营成果。并将这些方面的有关数据用比率表示出来,填写到一张能表示各自比率关系的等比例图形上,再用彩笔连接各自比率的结点后,恰似一张雷达图表。从图上可以看出企业经营状况的全貌,一目了然地找出了企业经营上的优势和弱势。

分析方法

就各指标来看,当指标值处于标准线以内时,说明该指标低于平均水平,需要加以改进;若接近最小圆圈或处于其内,说明此指标处于极差状态,是企业需要注意的问题,应重点加以分析改进;若处于标准线外侧,说明该指标处于理想状态,是企业的优势,应采取保持措施。

雷达图的分析方法是:如果企业的比率位于标准线以内,则说明企业比率值低于同行业的平均水平,应认真分析原因,提出改进方向;如果企业的比率值接近或低于小圆,则说明企业经营处于非常危险的境地,急需推出改革措施以扭转局面;如果企业的比率值超过了中圆或标准线,甚至接近大圆,则表明企业经营的优势所在,用予以巩固和发扬。如果把雷达图应用于创新战略的评估,就演变成为戴布拉图。实际上戴布拉图与雷达图的绘制与分析方法完全相同,但是,戴布拉图是用企业内部管理责任:协作过程、业绩度量、教育与开发、分布式学习网络和智能市场定位,以及外部关系:知识产品/服务协作市场准入、市场形象活动、领导才能和通信技术等两个基本方面10个具体因素来替代经营雷达图的5个因素。

制作方法

雷达图的绘制方法是:先画3个同心圆,把圆分为5个区域(每个区为72度),分别代表企业的收益性、生产性、流动性、安全性和成长性。同心圆中最小的圆代表同行业平均水平的1/2值或最差的情况;中心圆代表同行业的平均水平或特定比较对象的水平,称为标准线(区);大圆表示同行业平均水平的1.5倍或最佳状态。在5个区域内,以圆心为起点,以放射线的形式画出相应的经营比率线。然后,在相应的比率线上标出本企业决算期的各种经营比率。将本企业的各种比率值用线联结起来后,就形成了一个不规则闭环图。他清楚地表示出本企业的经营态势,并把这种经营态势与标准线相比,就可以清楚地看出本企业的成绩和差距。

python雷达图Demo(完整)

import matplotlib.pyplot as plt
import numpy as np

# 中文字体显示设置
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="/Library/Fonts/Songti.ttc")

# kmodel.cluster_centers_:kmeans聚类后的聚类中心
N = len(kmodel.cluster_centers_[0])  # 聚类中心的属性长度
angles=np.linspace(0, 2*np.pi, N, endpoint=False) # 设置雷达图的角度,用于平分切开一个圆面
angles=np.concatenate((angles, [angles[0]])) # 为了使雷达图一圈封闭起来
fig = plt.figure(figsize=(7,7)) # 设置画布大小
ax = fig.add_subplot(111, polar=True) # 这里一定要设置为极坐标格式
sam = ['r-', 'o-.', 'g--', 'b-.', 'p:'] # 样式
lab = [] # 图例标签名
for i in range(len(kmodel.cluster_centers_)):
    values = kmodel.cluster_centers_[i]
#     feature = ['ZF','ZC','ZR','ZL','ZM'] # 设置各指标名称
    feature = centers.columns
    # 为了使雷达图一圈封闭起来,需要下面的步骤
    values=np.concatenate((values,[values[0]]))
    ax.plot(angles, values, sam[i], linewidth=2) # 绘制折线图
    ax.fill(angles, values, alpha=0.25) # 填充颜色
    ax.set_thetagrids(angles * 180/np.pi, feature, font_properties=my_font) # 添加每个特征的标签
    ax.set_ylim(-3, 3) # 设置雷达图的范围
    plt.title('客户群特征分布图', font_properties=my_font) # 添加标题
    ax.grid(True) # 添加网格线
    lab.append('客户群'+str(i+1))
plt.legend(lab, prop=my_font)
plt.savefig("./07_航空公司客户群特征分布图.jpg")  # 保存图片到本地
plt.show() # 显示图形

效果展示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yanpenggong/article/details/85093547