面白そうなので試してみました。
実装を同じく
https://matplotlib.org/devdocs/gallery/api/radar_chart.html
を元に行っております。
で、
(1) 原点が浮かない
これは r方向の範囲指定だけの問題なので
と範囲指定を行うことで改善できます。
(2) どのような場合でも0~3の補助線出ること
これも(1) にて範囲指定を行い、尚且つ
Python
1ax.set_rgrids([1, 2, 3])
とグリッドの位置指定を行うことで改善できます。
(3) 形状が多角形(補助線含む)であること
これが一番のネックです。
形状は既に多角形になっているのですが、補助線を多角形にしようとすると
https://matplotlib.org/devdocs/gallery/api/custom_projection_example.html
を参考にして、座標系をガッツリとカスタマイズする必要がありそうです。
これはこれで面白そうな試みなのですが、少しハードルがが高そうなので、とりあえずは
Python
1ax.yaxis.grid(False)
として Θ方向のグリッドラインを非表示として
Python
1 ax.plot(theta, [1]*N, 'k-', marker=None, linewidth=0.5, alpha=0.3)
2 ax.plot(theta, [2]*N, 'k-', marker=None, linewidth=0.5, alpha=0.3)
のようにグリッド線を自分で描画すると良いのではないでしょうか。
ということでサンプルです。
(元のコードの radar_factory() はそのままで使用しております)
def main():
N = 9
theta = radar_factory(N, frame='polygon')
label= ['A','B','C','D','E','F','G','H','I']
data = [3.0, 0.00, 2.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00]
ax = plt.subplot(projection='radar')
# chartの範囲を0-3
ax.set_ylim(0, 3)
# Grid線を位置の指定
ax.set_rgrids([1, 2, 3])
# 描画処理
ax.plot(theta, data, 'c.-')
ax.fill(theta, data, facecolor='cyan', alpha=0.3)
ax.set_varlabels(label)
# 標準のグリッド線は円形なので消す(放射方向だけ残す)
ax.yaxis.grid(False)
# 替わりグリッド線を描く
ax.plot(theta, [1]*N, 'k-', marker=None, linewidth=0.5, alpha=0.3)
ax.plot(theta, [2]*N, 'k-', marker=None, linewidth=0.5, alpha=0.3)
plt.show()
結果
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/13 10:15 編集
2018/07/24 13:33