美文网首页数据挖掘
python画雷达图

python画雷达图

作者: xiaogp | 来源:发表于2020-04-24 13:56 被阅读0次

用雷达图做两个类别的特征对比,对比两个类别在各特征下的差异

类别 资产负债率 营业收入趋势 销售毛利率 现金比率 资产减值损失/营业总收入 营业收入波动比率
风险企业 0.9 0.14 0.27 0.92 0.94 0.68
正常企业 0.48 -0.12 0.13 0.27 0.05 0.46

雷达图对比

由于7个特征的量程都在0-1之间,因此不需要在做特征标准化,直接用原始值绘制雷达图


风险企业特征对比.png

python代码实现

import numpy as np
import matplotlib.pyplot as plt
matplotlib.rcParams["font.sans-serif"] = ["SimHei"]  # 正常显示中文
matplotlib.rcParams["axes.unicode_minus"] = False  # 正常显示负号

def radar_plot(a_array, b_array, a_label, b_label, labels, title, tick=True, axis_tick=False):
    assert len(a_array)  == len(b_array)  == len(labels), "data array length must match labels length"
    data_length = len(a_array)
    angles = np.linspace(0, 2 * np.pi, data_length, endpoint=False)
    angles = np.concatenate((angles, [angles[0]]))
    a_array = np.concatenate((a_array, [a_array[0]]))
    b_array = np.concatenate((b_array, [b_array[0]]))

    plt.plot(figsize=(12, 12))
    plt.polar()
    plt.plot(angles, a_array, "go-", linewidth=1, label=a_label, ms=4, mfc="white", mec="g")
    plt.plot(angles, b_array, "ro-", linewidth=1, label=b_label, ms=4, mfc="white", mec="r")
    plt.fill(angles, a_array, facecolor="g", alpha=0.25)
    plt.fill(angles, b_array, facecolor="r", alpha=0.25)
    labels = np.array(labels)
    plt.thetagrids(angles * 180 / np.pi, labels, fontproperties="SimHei", fontsize=20)

    if tick:  # 是否能显示雷达图上点的值
        for i, j in enumerate(a_array):
            plt.text(i - 0.4, j + 0.1, round(j, 2), ha="center", va="center", size=9)

        for i, j in enumerate(b_array):
            plt.text(i - 0.4, j + 0.1, round(j, 2), ha="center", va="center", size=9)
    
    if not axis_tick:  # 是否显示雷达图的纵轴刻度值
        plt.tick_params(labelleft=False)
    plt.legend(loc=0)
    plt.title(title, fontsize=20)
    plt.show()


if __name__ == "__main__":
    a_array = [0.48, -0.12, 0.13, 0.27, 0.05, 0.46, 0.12 ]
    b_array = [0.9, 0.14, 0.27, 0.92, 0.94, 0.68, 0.74]
    radar_list_zh = ["资产负债率",  "营业收入趋势" ,  "销售毛利率" , "现金比率", "资产减值损失/营业总收入",  "营业收入波动比率" ]
    radar_plot(a_array, b_array, a_label="正常企业", b_label="风险企业", labels=radar_list_zh, title="风险企业和正常企业比率指标对比雷达图", tick=True, axis_tick=False)

相关文章

  • python画雷达图

    用雷达图做两个类别的特征对比,对比两个类别在各特征下的差异 类别资产负债率营业收入趋势销售毛利率现金比率资产减值损...

  • echarts

    画个雷达图

  • Python matplotlib 画 雷达图

    有几组数据需要呈现,多维比较,适合雷达图 结果如下: 代码如下: 调整角度区间可以改变位置,如下:

  • Python—雷达图

  • python绘制雷达图

    从excel中读取表格值,然后绘制雷达图 from time import clock import numpy ...

  • 自定义多边形统计图(雷达图)

    自定义雷达图 根据项目需求在图中画多条线 attrs文件 Point类

  • Python 详解雷达图/蛛网图

    蛛网图,最早知道是在玩FIFA游戏的时候,球员的能力用蛛网图来表示与比较,那时觉得非常新鲜。后来,在实际的工作中,...

  • 用Tableau画雷达图

    一直想学画雷达图,但是网上的教程多数是通过连线来画的,需要前期处理数据,觉得有点麻烦,这两天在Tableau Pu...

  • UGUI雷达图《三》--- 圆形Image

    今天我们来实现一个圆形Image,如下图。(哈,这次其实不是画雷达图了,而是画圆形Icon,不过其原理和之前的雷达...

  • Python笔记——绘制雷达图

    代码 # 雷达图 from pyechartsimport optionsas opts from pyechar...

网友评论

    本文标题:python画雷达图

    本文链接:https://www.haomeiwen.com/subject/ugcfwhtx.html