レーダーチャートを表示する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

コメントを残す