ここでは、Seabornを用いたデータ可視化方法をまとめています。
この記事の対象
Seabornとは
「Seaborn」とはデータを可視化するためのライブラリになります。「Matplotlib」よりは知名度が低いですが、データを簡単に一括で可視化できたりして拡張性があるライブラリになります。
大量のデータを解析するときに特徴を掴んで、方向性を決める際に便利ですので、基本的な使用方法を押さえておくと役立ちます。
Seabornのインストール
$ pip install seaborn
基本的にはpipで「seaborn」をインストールすることになります。「seaborn」は「matplotlib」がベースになっているので、「matplotlib」を入れていない場合はインストールしておいて下さい。
また、良く一緒に使用する「numpy」も入ってない場合は入れおくと良いです。
Seabornで良く使用するグラフ
「seaborn」では様々なグラフを作成することが可能です。以下は代表的なグラフ一覧です。各リンク先では使用方法について解説しています。
項目 | 内容 |
sns.lineplot() | 折れ線グラフ |
sns.countplot() | 積み上げグラフ |
sns.distplot() | ヒストグラム |
sns.scatterplot() | 散布図 |
sns.boxplot() | 箱ひげ図 |
sns.catplot() | 2つの変数を組み合わせて,kindでグラフ種類を指定してプロットできる関数 |
sns.pairplot() | 複数変量をまとめて散布図化できる関数 |
Seabornを用いた使用例
折れ線グラフ
以下では、任意の作成したファイルを用いています。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
test = sns.lineplot(data=df, x="year", y="Number of publications")
figout = test.get_figure()
figout.savefig('test.png')
x,y軸をそれぞれ指定してプロットしています。保存するときは一度「get_figure」で出力してから行っています。
【結果】
>>>「sns.lineplot()」の使用方法
積み上げグラフ
以下では、KaggleのTitanic訓練データ(csv)を読み込んでヒストグラムを作成しています。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
#countplot
pig = sns.countplot(x="Pclass", data=df)
pig.figure.savefig('test.png')
数行で簡単に出力できるのが「seaborn」の特徴です。結果は以下の通りです。
【結果】
>>>「sns.countplot()」の使用方法
ヒストグラム
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
#ヒストグラム(年齢)
pig = sns.distplot(df['Age'], kde=True)
pig.figure.savefig('test.png')
ヒストグラムもMatplotlibに比べると数行で簡単に出力できます。結果は以下の通りです。
【結果】
>>>「sns.distplot()」の使用方法
散布図
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
df["Age"] = df["Age"].fillna(df["Age"].median())
#scatter
pig = sns.scatterplot(data=df, x="Age", y="Fare")
pigout = pig.get_figure()
pigout.savefig('test.png')
scatterplot()では、get_figure()で一度出力してから画像出力しています。結果は以下の通りです。
【結果】
>>>「sns.scatterplot()」の使用方法
箱ひげ図
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
df["Age"] = df["Age"].fillna(df["Age"].median())
#箱ひげ図
test = sns.catplot(data=df, x="Sex", y="Age", kind="box",hue='Survived')
test.savefig('test.png')
「catplot」を用いて箱ひげ図を作成しています。kindはグラフの種類を指定しています。hueはラベルを含むカラム名の指定になります。
【結果】
>>>「sns.catplot()」の使用方法
複数変量を一括で散布図化
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv('train.csv')
df["Age"] = df["Age"].fillna(df["Age"].median())
test = sns.pairplot(data=df)
test.savefig('test.png')
変量が複数ある場合は、「pairplot」を用いることで簡単に関係性を洗い出せます。
【結果】
>>>「sns.pairplot()」の使用方法
その他、Seabornを用いた使用例
項目 | 内容 |
under construction… | under construction… |