多级雷达图绘制python
时间: 2023-11-19 21:55:04 浏览: 167
多级雷达图是一种将多个雷达图叠加在一起的可视化方式,可以更加直观地比较不同对象在多个属性上的表现。在Python中,可以使用Matplotlib库来绘制多级雷达图。具体步骤如下:
1. 导入Matplotlib库和Numpy库。
2. 创建一个Figure对象和一个Subplot对象。
3. 定义每个雷达图的属性名称和范围。
4. 绘制每个雷达图。
5. 将所有雷达图叠加在一起。
下面是一个简单的代码示例,用于绘制一个包含两个雷达图的多级雷达图:
```
import matplotlib.pyplot as plt
import numpy as np
# 定义属性名称和范围
attributes1 = ['A', 'B', 'C', 'D', 'E']
ranges1 = [[0, 5], [0, 5], [0, 5], [0, 5], [0, 5]]
attributes2 = ['F', 'G', 'H', 'I', 'J']
ranges2 = [[0, 10], [0, 10], [0, 10], [0, 10], [0, 10]]
# 创建Figure对象和Subplot对象
fig = plt.figure(figsize=(6, 6))
ax = fig.add_subplot(111, polar=True)
# 绘制第一个雷达图
angles = np.linspace(0, 2*np.pi, len(attributes1), endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
values1 = [1, 3, 2, 4, 5]
values1 = np.concatenate((values1, [values1[0]]))
ax.plot(angles, values1, 'o-', linewidth=2)
ax.fill(angles, values1, alpha=0.25)
ax.set_thetagrids(angles * 180/np.pi, attributes1)
ax.set_ylim(ranges1)
# 绘制第二个雷达图
angles = np.linspace(0, 2*np.pi, len(attributes2), endpoint=False)
angles = np.concatenate((angles, [angles[0]]))
values2 = [5, 4, 3, 2, 1]
values2 = np.concatenate((values2, [values2[0]]))
ax.plot(angles, values2, 'o-', linewidth=2)
ax.fill(angles, values2, alpha=0.25)
ax.set_thetagrids(angles * 180/np.pi, attributes2)
ax.set_ylim(ranges2)
# 显示图形
plt.show()
```
阅读全文