python如何绘制雷达图子图
时间: 2023-10-18 14:17:05 浏览: 161
python使用matplotlib绘制雷达图
可以使用Matplotlib库中的pyplot子库绘制雷达图子图。以下是一个简单的示例代码:
```
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
data1 = [1, 2, 3, 4, 5]
data2 = [4, 3, 2, 1, 5]
# 设置雷达图的角度、标签、范围
angles = np.linspace(0, 2*np.pi, len(data1), endpoint=False)
labels = ['A', 'B', 'C', 'D', 'E']
max_value = 5
# 绘制子图
fig = plt.figure()
ax1 = fig.add_subplot(221, polar=True)
ax2 = fig.add_subplot(222, polar=True)
ax3 = fig.add_subplot(223, polar=True)
ax4 = fig.add_subplot(224, polar=True)
# 绘制雷达图
ax1.plot(angles, data1, 'o-', linewidth=2)
ax1.fill(angles, data1, alpha=0.25)
ax1.set_thetagrids(angles * 180/np.pi, labels)
ax1.set_title('Subplot1 ')
ax2.plot(angles, data2, 'o-', linewidth=2)
ax2.fill(angles, data2, alpha=0.25)
ax2.set_thetagrids(angles * 180/np.pi, labels)
ax2.set_title('Subplot2')
ax3.plot(angles, data1, 'o-', linewidth=2)
ax3.fill(angles, data1, alpha=0.25)
ax3.set_thetagrids(angles * 180/np.pi, labels)
ax3.set_title('Subplot3')
ax4.plot(angles, data2, 'o-', linewidth=2)
ax4.fill(angles, data2, alpha=0.25)
ax4.set_thetagrids(angles * 180/np.pi, labels)
ax4.set_title('Subplot4')
plt.show()
```
在这个示例中,我们创建了四个子图,每个子图都包含一个雷达图。通过调整`add_subplot`函数的参数,可以控制子图的位置、大小等属性。需要注意的是,雷达图的角度应该使用弧度制,而不是角度制。可以使用`numpy`库中的`linspace`函数生成一组角度序列。在绘制雷达图时,需要先绘制数据点的连线,再用`fill`函数将其填充。`set_thetagrids`函数可以设置刻度标签,其中的参数`angles * 180/np.pi`将弧度制转换为角度制。最后通过`set_title`函数设置子图标题,`show`函数显示图形。
阅读全文