如何将plt.polar()函数生成的多个折线放到一个雷达图中展示
时间: 2024-02-18 20:01:39 浏览: 27
你可以使用 plt.hold(True) 函数来保持图形,接着将每个折线都用 plt.polar() 绘制,最后调用 plt.show() 函数来显示整个图像。
以下是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 构造数据
theta = np.linspace(0, 2 * np.pi, 5, endpoint=False)
values1 = np.random.randint(1, 10, 5)
values2 = np.random.randint(1, 10, 5)
values3 = np.random.randint(1, 10, 5)
# 绘制雷达图
plt.figure(figsize=(8, 8))
plt.subplot(111, polar=True)
plt.hold(True)
plt.plot(theta, values1, 'b-o')
plt.plot(theta, values2, 'g-o')
plt.plot(theta, values3, 'r-o')
plt.thetagrids(np.arange(0, 360, 360.0/5), ('A', 'B', 'C', 'D', 'E'))
plt.rgrids(np.arange(1, 10, 1), angle=0)
plt.legend(['line1', 'line2', 'line3'], loc='best')
plt.show()
```
其中,`plt.subplot(111, polar=True)` 表示创建一个极坐标子图,`plt.hold(True)` 表示保持图形,`plt.plot(theta, values, 'color-style')` 表示绘制一个折线图,`plt.thetagrids()` 和 `plt.rgrids()` 分别表示设置极角和极径的网格线。最后,使用 `plt.show()` 函数将图像显示出来。