【Python】Pythonで簡単にレーダーチャートを作成する方法

Python

レーダーチャートは、複数の変数を一度に比較するのに役立つ可視化手法です。それぞれの軸が異なる変数を表し、各変数の値に応じてポイントがプロットされ、それらのポイントが結ばれて一つの形状が作られます。この記事では、Pythonを使って簡単にレーダーチャートを作成する方法について説明します。

使用するライブラリ

Pythonでレーダーチャートを作成するには、主に以下の2つのライブラリを使用します。

  1. Matplotlib: Pythonのグラフ描画ライブラリで、様々なグラフを簡単に描画できます。
  2. Pandas: データ解析を支援する機能を提供するライブラリで、データの読み込みや加工を行います。
Polar plot — Matplotlib 3.8.4 documentation

サンプルデータの作成

この例では、以下のような5つのカテゴリの評価データを持つ3人の人物についてレーダーチャートを作成します。

  • Communication
  • Problem Solving
  • Teamwork
  • Creativity
  • Time Management

まずは、データをPandasのDataFrameに格納します。

import pandas as pd

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Communication': [3.5, 4.2, 3.8],
    'Problem Solving': [4.1, 3.5, 4.4],
    'Teamwork': [4.0, 3.7, 4.3],
    'Creativity': [3.8, 4.5, 4.1],
    'Time Management': [4.2, 3.9, 4.0]
}

df = pd.DataFrame(data)

レーダーチャートの作成

次に、Matplotlibを使ってレーダーチャートを作成します。以下のコードを実行してください。

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


# 各カテゴリの数
num_vars = len(df.columns) - 1

# 各軸の角度を計算
angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
angles += angles[:1]  # 最初の要素を最後に追加して閉じた図形にする

# チャートの見た目を整える
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
plt.xticks(angles[:-1], df.columns[1:], color='grey', size=12)
plt.yticks(np.arange(1, 5.5, 1), color='grey', size=10)
plt.ylim(0, 5)

# レーダーチャートにデータをプロットする関数
def add_to_radar_chart(ax, angles, data, color, label):
    values = data.tolist()
    values += values[:1]  # 最初の要素を最後に追加して閉じた図形にする
    ax.plot(angles, values, color=color, linewidth=2, label=label)
    ax.fill(angles, values, color=color, alpha=0.25)

# 各人物のデータをプロット
colors = ['b', 'r', 'g']
for i, row in df.iterrows():
    add_to_radar_chart(ax, angles, row.iloc[1:], colors[i], row['Name'])

# 凡例の表示
ax.legend(loc='upper right', bbox_to_anchor=(1.3, 1.1), fontsize=12)

# チャートの表示
plt.show()

このコードでは、まずadd_to_radar_chartという関数を定義しています。この関数は、指定されたデータを使ってレーダーチャートにポリゴンを描画します。次に、forループを使って、各人物のデータをプロットしています。最後に、凡例を表示し、チャートを表示しています。

実行すると、3人の人物のスキルを比較できるレーダーチャートが表示されます。このチャートを使って、各人物の強みや弱みを一目で把握できます。

まとめ

この記事では、Pythonを使ってレーダーチャートを作成する方法を紹介しました。MatplotlibとPandasライブラリを使うことで、簡単にレーダーチャートを作成し、複数の変数を一度に比較できます。この技術を活用して、データ分析や可視化に役立ててください。

データサイエンティストの書評ブログ
趣味が読書くらいしかない駆け出しデータサイエンティストの書評ブログです。日々の勉強のアウトプットや趣味の読書のおすすめをしていきます。

その他の技術系記事も書いています

コメント