Python绘制雷达图详细代码及注释
时间: 2023-05-27 07:04:46 浏览: 165
Python数据可视化:时间序列图表可视化
5星 · 资源好评率100%
下面是Python代码,用于绘制雷达图,并附有详细解释和注释。
```python
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# 设置图像大小和背景颜色
plt.figure(figsize=(8, 8), facecolor='white')
# 数据
labels = np.array(['攻击', '防御', '速度', '智力', '体力'])
data = np.array([8, 6, 9, 5, 7])
# 将数据转换为360度坐标系的极坐标系坐标
angles = np.linspace(0, 2*np.pi, len(labels), endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
# 绘制雷达图
plt.polar(angles, data, 'bo-', linewidth=2)
# 填充雷达图内部的区域
plt.fill(angles, data, alpha=0.25)
# 设置坐标轴名称
plt.thetagrids(angles * 180/np.pi, labels)
plt.ylim(0, 10)
# 显示图像
plt.show()
```
代码说明:
1. 引入必要的模块:matplotlib.pyplot、pandas、numpy;
2. 设置图像大小和背景颜色;
3. 定义数据,其中labels是一个含有各项指标名称的数组,data是一个含有各项指标得分的数组;
4. 将数据转换为360度坐标系的极坐标系坐标,以便使用matplotlib库绘制雷达图;
5. 使用matplotlib库中的polar()函数绘制纯线雷达图,设置线型为圆圈和实线,线宽为2;
6. 使用matplotlib库中的fill()函数填充雷达图内部的区域,alpha参数用于控制填充区域的透明度;
7. 使用matplotlib库中的thetagrids()函数为极坐标系设置坐标轴名称,并将角度从弧度转换为度数;
8. 限制雷达图y轴的范围在0到10之间;
9. 最后使用show()函数显示图像。
参考资料:
1. [matplotlib文档:Radar Chart](https://matplotlib.org/3.3.3/gallery/specialty_plots/radar_chart.html)
2. [如何绘制根据数据自动计算坐标轴的极坐标雷达图?](https://zhuanlan.zhihu.com/p/59214582)
阅读全文