如何在 matplot 中的每个极轴中添加 xvline

how to add a xvline in every polar axis in matplot

我正在尝试添加一条线来标记极坐标图中每个变量的分位数。 当我尝试 axvline 它只绘制在第一个轴

axes1 = plt.gca(projection='polar')
axes1.axvline(x=0, ymin=0.2,ymax=0.6, color='k',lw=3,alpha=0.5)

我想为每个轴添加不同的标记,但我不知道如何遍历示例的 5 个轴。

您可以将圆 (2 π) 分为 5,以获得 5 个方向中每个方向的 x 坐标。

import matplotlib.pyplot as plt
import numpy as np

axes1 = plt.gca(projection='polar')

xs = np.linspace(0, 2 * np.pi, 5, endpoint=False) + np.pi / 2
for x in xs:
    axes1.axvline(x=x, ymin=0.2, ymax=0.6, color='r', lw=3, alpha=0.5)

for ls in [':', '-']:
    y = np.random.uniform(0.3, 1, 5)
    plt.plot(np.concatenate([xs, xs[:1]]), np.concatenate([y, y[:1]]), color='g', ls=ls)
    plt.fill_between(np.concatenate([xs, xs[:1]]), np.concatenate([y, y[:1]]), color='g', alpha=0.2)

plt.xticks(xs % (2 * np.pi))
plt.show()