初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

seaborn

前書き

今回は、可視化用のライブラリであるseabornについて説明していきます。 seabornは、pandasのデータ構造(Series型、DataFrame型)と密接に統合されています。

インストール

seabornのインストールは、pipコマンドを用いて行うことができます。
以下のようになります。

pip install seaborn

seabornは、matplotlibを内部で呼び出しているため、こちらもインストールする必要があります。

pip install matplotlib

データセットの用意

可視化を行うのでデータセットを用意する必要があります。
今回は、seabornの関数により取得することのできるデータセットを使います。

import seaborn as sns # 慣例

tips = sns.load_dataset("tips") # データセットの取得
print(type(tips)) # タイプの確認
print(tips.head()) # 要素の確認

データセットは、以前に紹介したpandasのDataFrame型です。

<class 'pandas.core.frame.DataFrame'>
   total_bill   tip     sex smoker  day    time  size
0       16.99  1.01  Female     No  Sun  Dinner     2
1       10.34  1.66    Male     No  Sun  Dinner     3
2       21.01  3.50    Male     No  Sun  Dinner     3
3       23.68  3.31    Male     No  Sun  Dinner     2
4       24.59  3.61  Female     No  Sun  Dinner     4

sns.load_dataset("tips")によりデータセットを取得しています。データセットは、DataFrame型です。DataFrame型なのでtips.head()により、要素の確認ができます。

様々なプロット

seabornのライブラリから使用できるプロットの関数は以下のような引数を基本的に持っています。

  • sns.xplot(x='x軸のカラム', y='y軸のカラム', data=DataFrame型)

  • sns.xplot(x=Series型)

xには、プロットの手法名が入ります。
基本の引数以外にも様々な引数があります。
それらを組み合わせて使用することにより、効果的な可視化を行うことができます。
いくつか例を示します。

散布図

import matplotlib.pyplot as plt
import seaborn as sns

sns.relplot(x='total_bill', y='tip', data=tips)
plt.title('scatter plot')
plt.grid()
plt.savefig('relplot.png')

sns.relplot(x='total_bill', y='tip', hue='smoker', data=tips)
plt.title('scatter plot')
plt.grid()
plt.savefig('relplot2.png')

sns.relplot(x='total_bill', y='tip', hue='smoker', style='time', data=tips)
plt.title('scatter plot')
plt.grid()
plt.savefig('relplot3.png')

f:id:tiginkgo:20190312010728p:plain
relplot1.png

f:id:tiginkgo:20190312010808p:plain
relplot2.png
f:id:tiginkgo:20190312010823p:plain
replot3.png

カテゴリカルデータの散布図

import matplotlib.pyplot as plt
import seaborn as sns

sns.catplot(x='day', y='total_bill', data=tips)
plt.title('cat plot')
plt.grid()
plt.savefig('catplot.png')

sns.catplot(x="day", y="total_bill", kind="box", data=tips);
plt.title('cat plot')
plt.grid()
plt.savefig('catplot2.png')

f:id:tiginkgo:20190312011227p:plain
catplot.png

f:id:tiginkgo:20190312011244p:plain
catplot2.png

ヒストグラム

import matplotlib.pyplot as plt
import seaborn as sns

sns.distplot(tips['total_bill'])
plt.title('dist plot')
plt.grid()
plt.savefig('distplot.png')

f:id:tiginkgo:20190312011950p:plain
distplot.png

あとがき

今回は、seabornについて簡単な例を紹介しました。
次回は、機械学習のライブラリであるsklearnを紹介します。