レーダーチャートを表示するPythonコード
データからレーダーチャートをPythonで出力してみよう。
Pythonコード
matplotlib.pyplot
で極座標のプロットで多角形を描きレーダーチャートを出力する。
極座標はpolar=True
で指定する。具体的には次のように指示する。
fig, ax = plt.subplots(subplot_kw=dict(polar=True))
多角形については, $360^{\circ}$ である $2\pi$ をラベルの要素の個数で割ることで角度を取得し, 各角度ごとに各値をax.plot
で極座標における折れ線グラフとして表示することで描画する。
入力例. label
ごとにproduct_A
からproduct_C
までのデータをレーダーチャートして表示する。
import matplotlib.pyplot as plt
import numpy as np
import japanize_matplotlib
labels = ['デザイン', '使いやすさ', '性能', '価格', 'サポート']
product_A = [8, 7, 9, 6, 7]
product_B = [6, 8, 7, 9, 6]
product_C = [7, 6, 8, 7, 8]
angles = np.linspace(0, 2 * np.pi, len(labels), endpoint=False).tolist()
angles += angles[:1]
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
def plot_radar(values, label, color):
values += values[:1]
ax.plot(angles, values, label=label, color=color)
ax.fill(angles, values, alpha=0.25, color=color)
plot_radar(product_A, '製品A', 'r')
plot_radar(product_B, '製品B', 'g')
plot_radar(product_C, '製品C', 'b')
ax.set_xticks(angles[:-1])
ax.set_xticklabels(labels)
ax.set_ylim(0, 10)
plt.title('製品評価レーダーチャート')
plt.legend(loc='upper right')
plt.show()

※matplotlib
で日本語を利用する場合japanize_matplotlib
を使う。必要であれば、次を行い事前にインストールしておく。
pip install japanize-matplotlib