1. ホーム
  2. matplotlib

[解決済み] matplot の各極軸に xv ラインを追加する方法

2022-02-06 02:57:22

質問

極座標図に各変数の分位数を示す線を追加しようとしています。 そこで axvline は、第1軸にしか描画されません。

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()