Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonのMatplotlibでレーダーチャート(スパイダーチャート)を作成する方法

PythonのMatplotlibを使えば、多角形のレーダーチャート(スパイダーチャート)を簡単に作成できます。レーダーチャートは、複数の評価項目を一目で比較できるため、スポーツ能力やスキル評価などの可視化に非常に便利です。

作成手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • sports 列と values 列を持つPandasデータフレームを作成します。
  • 新しい図(figure)を作成するか、既存の図をアクティブにします。
  • サブプロット配置の一部として、図に ax を追加します。このとき、極座標系を使用するために projection="polar" を指定します。
  • データフレームの値に基づいて、theta(角度)の値を算出します。
  • データフレームから値のリストを取得し、始点と終点がつながるように先頭の値を末尾に追加します。
  • thetaとvaluesのデータポイントをもとに、極座標上に線グラフを描画します。
  • fill() メソッドを使って、ポリゴンの内側の領域を塗りつぶします。
  • show() メソッドを呼び出して、図を表示します。

コード例

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

# スポーツ項目とその評価値を持つデータフレームを作成
df = pd.DataFrame({
    'sports': ['Strength', 'Speed', 'Power', 'Agility', 'Endurance', 'Analytical Aptitude'],
    'values': [7, 8, 6, 10, 8, 9]
})

fig = plt.figure()

# 極座標系のサブプロットを追加
ax = fig.add_subplot(111, projection="polar")

# 各項目の角度(theta)を計算
deftheta = np.arange(len(df) + 1) / float(len(df)) * 2 * np.pi

# 値を取得し、最初の値を末尾に追加して閉じた多角形にする
values = df['values'].values
values = np.append(values, values[0])

# 線グラフを描画
l1, = ax.plot(theta, values, color="purple", marker="o", label="Name of values")

ax.tick_params(pad=10)

# ポリゴン内部を半透明の緑で塗りつぶし
ax.fill(theta, values, 'green', alpha=0.3)

plt.show()

実行結果

上記のコードを実行すると、6つのスポーツ項目(筋力・スピード・パワー・敏捷性・持久力・分析力)を軸としたレーダーチャートが表示されます。紫の線とマーカーで各項目の評価値が結ばれ、その内側が半透明の緑で塗りつぶされた六角形のポリゴンとして描画されます。

PythonのMatplotlibでレーダーチャート(スパイダーチャート)を作成する方法

ポイント解説

このコードの重要なポイントは以下の通りです。

  • データを閉じる処理: レーダーチャートを多角形として完成させるには、最初のデータポイントを配列の末尾にも追加する必要があります。これにより、線が一周して閉じた形状になります。
  • theta の計算: np.arange(len(df) + 1) で各項目に均等な角度を割り当て、2 * np.pi を掛けることでラジアン単位の角度に変換しています。
  • alpha パラメータ: 塗りつぶしの透明度を調整でき、複数のデータセットを重ねて表示する場合でも視認性が保たれます。
  1. Pythonのmatplotlibで1つのページに複数のプロットを作成する方法

    Pandasとmatplotlibを組み合わせることで、データフレームから図(figure)と軸(axis)を簡単に作成し、scatterメソッドを使って点をプロットできます。ここでは、学生の人数と取得点数の関係を散布図として可視化する手順を紹介します。 実装の手順 学生のリスト、各学生が取得した点数のリスト、スコアごとの色分け用リストを作成します。 PandasのDataFrameを使って、手順1のデータからデータフレームを作成します。 subplotsメソッドでfigとax変数を作成します。デフォルトでは行数(nrows)と列数(ncols)はどちらも1に設定されています。 plt.xl

  2. Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法

    Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で