Python in Excel実践:Seabornで散布図(Scatter Plot)を作成する

pandas python 1

Python in Excel には、データ可視化のためのライブラリがあらかじめ含まれています。
この記事では、Seaborn を使って、Excel のバンドデータをもとに 複数の属性を同時に表現した散布図を作成する手順を確認します。

Python in Excelの導入記事↓

Python in Excelにおけるpandas DataFrameの基本 – Lean Data Office

Seabornについては過去に解説記事を上げています。

これを機に確認ください。

Seaborn入門:Pythonで始めるデータ可視化 – Lean Data Office

Seabornとは何か

Seaborn は、Python でデータを可視化するためのライブラリです。
Matplotlib をベースにしつつ、少ないコードで見やすいグラフを作成できることが特徴です。
Python in Excel の初期化環境にも含まれているため、追加設定なしで使用できます。

image

seaborn: statistical data visualization — seaborn 0.13.2 documentation

公式ドキュメントには Gallery が用意されており、
折れ線、棒グラフ、散布図、ヒートマップなど、さまざまな可視化例が確認できます。
Seaborn でどのような表現ができるのかを把握する際の参考になります。

image

今回使用するデータは、バンド情報をまとめた Excel テーブルです。
各行には、以下の情報が含まれています。

  • バンド名
  • ジャンル
  • 結成年
  • メンバー数

このデータを使って、ジャンルごとの分布や特徴を可視化します。

image

別シートの Python セルで、次のコードを実行します。

bands = xl("BandsData[#すべて]", headers=True)

これにより、Excel のテーブル全体が pandas の DataFrame として定義されます。
以降のグラフ作成処理は、この DataFrame を対象に行います。

image

Seabornを使った散布図の作成

Seaborn と Matplotlib を組み合わせて、散布図を作成します。

Seaborn はグラフそのものを描画するためのライブラリですが、
図の枠や軸の管理といった土台部分は Matplotlib が担っています
Seaborn は Matplotlib の上に成り立っており、両者を組み合わせて使うのが一般的です。

まず、Seaborn のテーマを設定し、
Matplotlib で図(figure)と軸(axis)を作成します。
この axis に対して、軸ラベルの回転やグリッド線の調整を行います。

sns.set_theme(style="whitegrid")
f, ax = plt.subplots(figsize=(8, 8))
ax.tick_params(axis='x', rotation=90)
ax.grid(linewidth=.25)

グラフの土台が整ったら、Seaborn の scatterplot() を使って可視化を行います。

sns.scatterplot(x="Genre", y="Group", size="Members", hue="Year", data=bands, ax=ax)
image

ジャンルを横軸、バンド名を縦軸に配置し、
メンバー数を点の大きさ、結成年を色の違いとして表現しています。

このように、

  • レイアウトや細かい調整は Matplotlib
  • データ表現は Seaborn

という役割分担にすることで、
少ないコード量で見やすい散布図を作成できます。

コードを実行すると、Python の実行結果としてグラフが生成され、
Excel のセル内に画像として表示されます。
この時点では、セルの中に小さく表示された状態です。

image

セル内の画像をオーバーレイ表示に切り替え、
参照を作成することで、グラフ全体を確認しやすい状態にします。
これにより、Excel 上で通常の図として扱えるようになります。

image

作成した散布図の見方

image

作成された散布図では、次の情報が同時に表現されています。

  • 横軸(Genre):バンドのジャンル
  • 縦軸(Group):バンド名
  • 点の大きさ(Members):バンドのメンバー数
  • 点の色(Year):バンドの結成年

ジャンルごとの分布に加えて、
メンバー数の違いは円の大きさで、
結成年の違いは色の違いで確認できます。

少ないコード量で、複数の属性を同時に可視化できている点が、
Seaborn を使う大きなメリットです。

まとめ

Seaborn を使うことで、Excel データをもとにした散布図を、少ないコードで分かりやすく可視化できます。
Python in Excel 上でそのままグラフを作成できるため、データ分析や傾向把握を Excel の作業フローの中で完結させることが可能です。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。