Python绘制雷达图

文章讲述了如何配置matplotlib以支持中文显示,并利用numpy创建极坐标系统,设置角度和数据,通过concatenate方法拼接数组以闭合图形,同时添加了角度网格标签,最后填充了数据并展示图形。
摘要由CSDN通过智能技术生成

 为了正确显示中文字体 

matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = 'SimHei'

极坐标用弧度表示,引用np.pi 进行计算 也可以math.pi

linspace的endpoint参数用于规定是否包含末尾元素

labels = ['标签一', '标签二', '标签三', '标签四']
angles = np.linspace(0, 2 * np.pi, 4, endpoint=False)
dates = np.array([5, 4, 8, 9])

数组不可以像列表一样使用加号运算符拼接,对数组加号运算符操作是两个数组相加

使用numpy库的concatenate方法对两个数组进行连接,注意数组的拼接不同于列表,不能简单地使用运算符。拼接后以便于后续plot函数的绘制,使得首尾能够连接在一起,以此绘制完整

angles = np.concatenate((angles, [angles[0]]))
dates = np.concatenate((dates, [dates[0]]))

 绘制标签,参数为将角度设置为theta网格的位置

plt.thetagrids(range(0, 360, int(360 / len(labels))), labels)

完整代码

import matplotlib.pyplot as plt
import matplotlib
import numpy as np

matplotlib.rcParams['font.family'] = 'SimHei'
matplotlib.rcParams['font.sans-serif'] = 'SimHei'  # 正确显示中文字体

labels = ['标签一', '标签二', '标签三', '标签四']
angles = np.linspace(0, 2 * np.pi, 4, endpoint=False)
dates = np.array([5, 4, 8, 9])

angles = np.concatenate((angles, [angles[0]]))
dates = np.concatenate((dates, [dates[0]]))
plt.subplot(111, polar=True)  # 绘制极坐标
plt.plot(angles, dates)
plt.grid(True)  # 网格开关
plt.thetagrids(range(0, 360, int(360 / len(labels))), labels)
plt.fill_between(angles, dates)  # 填充
plt.show()

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值