Python绘制雷达图

简介

目前没有发现matplotlib库有直接绘制雷达图的函数,所以自己做了一个接口,仅供参考。

主要函数

函数名 主要参数
matplotlib.pyplot.subplot polar=True
axe.set_thetagrids 纵坐标轴角度列表,纵坐标轴名称列表 

备注:

  1. axe是子图对象,一幅图是一个figure对象,一个figure对象可以有若干个axe对象(若干个子图)。

             axe对象可以通过figure对象的axes属性获取当前子图列表(figure.axes),也可以通过plt.gca()获取当前代码位置在绘制的子图。

基本步骤

  1. 创建图画对象,设置参数以使用极坐标系(pyplot.subplot(111, polar=True));
  2. 绘制图像,横坐标和极坐标最外层长度对应(配置横纵坐标列表);
  3. 通过函数设置坐标轴展示方式(axe.set_thetagrids)。

运行结果

 

示例代码

复制代码
from matplotlib import pyplot as plt
import math

# 配置项目名和坐标
labels = ['a', 'b', 'asd', 'f', 'g', 'qwe']
ys = [1, 2, 4, 3, 1, 4]

def radio(labels, data, target_fn='test.png'):
    ax = plt.subplot(111, polar=True)  # 设置为极坐标系
    # 配置横坐标
    xs = [i*2*math.pi/len(data) for i in range(len(data))]
    # 在横纵坐标最后添上第一个坐标
    xs = xs+xs[:1]
    data = data+data[:1]

    print(xs, data, sep='\n')  # 打印坐标

    ax.plot(xs, data)  # 绘制
    ax.set_thetagrids([i/(len(xs)-1)*360 for i in range(len(xs)-1)], labels)  # 设置纵坐标轴,坐标轴的方向单位为角度
    
    # plt.show()  # 展示图像
    plt.savefig(target_fn)  # 如果要保存,记得注释上一行


if __name__ == '__main__':
    radio(labels, ys, )
复制代码

 

要点

要点
通过设置plt.subplot函数的polar参数为True让坐标变为极坐标
通过在坐标列表最后额外加上第一个坐标让雷达图封闭
通过axe对象的set_thetagrids函数设置坐标轴,第一个参数是坐标值列表,第二个参数是坐标名列表

posted @   小鱼圆又圆  阅读(659)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示