【seaborn】seabornで散布図行列を描画する

Seabornとは

Seaborn (シーボーン) とは、Pythonの可視化ライブラリの一つです。

SeabornはMatplotlibの機能をより美しく、より簡単に実現するための可視化ライブラリです。

Seabornの特徴として、Matplotlibベースで作られているため、折れ線グラフや棒グラフ、散布図などの基本的なグラフ描画はMatplotlibの機能を利用していることが挙げられます。

公式ドキュメント

Seabornのインストール

pipコマンドを用いたSeabornのインストールは下記のコマンドをMacの方はターミナル、Windowsの方はコマンドプロンプト場で実行することでインストールが出来ます。

pip install seaborn

問題を報告するJupyter Notebookをお使いの方は、起動したNotebookのセルに、先頭に!マークをつけて実行することでインストールすることが出来ます。

!pip install seaborn

散布図行列

まず始めに、Seabornで描画するために、Seabornの読み込みをしましょう。

import seaborn as sns

問題を報告する上記で読み込むことが可能です。Seabornではよくsnsという名前で読み込むことがありますので、snsという別名をつけております。まずはチュートリアルとして、Seabornがあらかじめ用意してあるデータを使って可視化をしていきます。今回はアイリスデータに対して、散布図行列で可視化します。

散布図行列とは複数の変数がある場合に、全ての2変数同士の組み合わせに対して散布図を作成し、行列の形式に並べたものです。散布図行列は、複数の変数の相関関係を視覚的に捉えることができます。

Seabornで散布図行列を可視化する場合、pairplot()を用います。

import seaborn as sns # こちらにも再度記述
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# アヤメのデータの読み込み ※左のirisは変数名で、右側のirisはirisという花のデータセットを読み込む設定です。
iris = sns.load_dataset("iris")
# データに含まれる全ての数値変数同士での散布図を描画

# 今回はirisという変数を渡していますが、Pandasのデータフレーム(DataFrame)型を渡すことで、散布図行列を描画出来ます。
sns.pairplot(iris) # 散布図行列
plt.show()

ちなみに、Pandasのデータフレームを用いて、pairplotをする場合、そのデータフレームにNaN値がある場合pairplotできません。ですのでpairplotするには、NaNの行を削除するか、NaNを0に置き換えた上で実行する必要があります。pairplotはデータフレーム内にある全ての数値項目の各ペアの散布図を描画しますが、hueオプションを使うとことで色分けも可能です。

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

# 引数hueにcolumnを指定することで、データを色分けすることが可能です。
# 今回引数に渡すcolumnはirisデータセットのspecies columnです。
# hueは色合い、色調などを意味する単語です。
sns.pairplot(iris, hue="species")
plt.show()

※上記の画像はお使いの実行環境によって色などが異なる場合があります。

Pythonを効率よく学ぶには?

Pythonを効率よく学ぶには、普段からPythonを利用している現役のデータサイエンティストや機械学習エンジニアに質問できる環境で学ぶことです。
質問し放題かつ、体系的に学べる動画コンテンツでデータ分析技術を学びたい方は、オンラインで好きな時間に勉強できるAI Academy Bootcampがオススメです。受講料も業界最安値の35,000円(6ヶ月間質問し放題+オリジナルの動画コンテンツ、テキストコンテンツの利用可能)なので、是非ご活用ください。