Python绘制雷达图
简介
目前没有发现matplotlib库有直接绘制雷达图的函数,所以自己做了一个接口,仅供参考。
主要函数
函数名 | 主要参数 |
matplotlib.pyplot.subplot | polar=True |
axe.set_thetagrids | 纵坐标轴角度列表,纵坐标轴名称列表 |
备注:
- axe是子图对象,一幅图是一个figure对象,一个figure对象可以有若干个axe对象(若干个子图)。
axe对象可以通过figure对象的axes属性获取当前子图列表(figure.axes),也可以通过plt.gca()获取当前代码位置在绘制的子图。
基本步骤
- 创建图画对象,设置参数以使用极坐标系(pyplot.subplot(111, polar=True));
- 绘制图像,横坐标和极坐标最外层长度对应(配置横纵坐标列表);
- 通过函数设置坐标轴展示方式(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函数设置坐标轴,第一个参数是坐标值列表,第二个参数是坐标名列表 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人