绘制一个雷达图包含两个子图。子图1:可以展示多门课程的成绩分布,雷达图显示各课程的得分。子图2:可以展示不同阶段的身高变化,雷达图显示各阶段的身高。
时间: 2024-12-21 13:22:09 浏览: 11
在Python中,你可以使用matplotlib库中的`radar()`函数以及其子模块如`pyplot`和`axes_grid1`来绘制雷达图,这非常适合呈现一个多维度的数据比较。以下是两个子图的绘制步骤:
**子图1:成绩分布雷达图**
```python
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import host_subplot
# 假设数据是一个二维数组,每一行代表一门课程的成绩
scores = [[85, 90, 78, 88, 92], [80, 86, 75, 84, 90]] # 示例数据
labels = ['数学', '英语', '物理', '化学', '生物']
host = host_subplot(111, polar=True)
par = host.twin()
par.axis["polar"].set_visible(False)
for i in range(len(scores)):
angles = [n / float(len(labels)) * 2 * np.pi for n in range(len(labels))]
values = scores[i]
host.plot(angles, values, label=labels[i])
par.plot(angles, values, linestyle='solid', linewidth=2)
host.legend(loc="upper center")
plt.show()
```
**子图2:身高变化雷达图**
```python
# 假设数据是不同阶段身高的列表
heights = [[160, 165, 170], [175, 180, 185]] # 示例数据
phases = ['婴儿期', '儿童期', '青少年期']
for i in range(len(heights)):
angles = [n / float(len(phases)) * 2 * np.pi for n in range(len(phases))]
host.plot(angles, heights[i], linestyle='dashed', marker='o', label=phases[i])
host.legend(loc="upper center")
plt.show()
```
阅读全文