seaborn入門2_「回帰とプロット」
こんにちは、ワタルです。
さっと見て、「あぁそうだったそうだった」と確認できるハンドブックのような存在を目指して。
searborn入門第2回目、「回帰とプロット」です。
はじめに
このエントリでは、seabornのサンプルデータを用いて様々な回帰曲線を描く手法について学びます。 以下の関数を学習することができます。
tips = sns.load_dataset("tips")(サンプルデータの取得) sns.lmplot("x","y",dataframe)(単回帰曲線の可視化) sns.lmplot("x","y",dataframe, scatter_kws={'marker':'o', 'color':'indianred'}, line_kws={'linewidth':1, 'color':'blue'})(様々な引数) fig, (axis1,axis2) = plt.subplots(1,2,sharey =True)(複数のグラフを同時にプロットする)
- はじめに
- おまじない
- サンプルデータの取得
- seaborn.lmplot("x","y",dataframe)(単回帰曲線の可視化)
- 引数order(多項式回帰の可視化)
- 引数fit_reg(散布図の可視化)
- 引数x_estimator(特定の推定量とその回帰を可視化)
- 引数hue(色合いを変える)
- グラフの分割表示
おまじない
import numpy as np from numpy.random import randn import pandas as pd from scipy import stats import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline
サンプルデータの取得
#Seabornにサンプルデータがあります。 tips = sns.load_dataset("tips")
csvの場合は、pd.read_csv("tips.csv")で読み込むことができます。
取得したdataframeを表示します。
tips.head() >>> total_bill tip sex smoker day time sise 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
seaborn.lmplot("x","y",dataframe)(単回帰曲線の可視化)
seabornを用いることで、簡単に単回帰曲線を可視化することができます。
sns.lmplot("total_bill","tip",tips) >>>
グラフの様々な引数
プロット点や線の色などを指定することもできます。
sns.lmplot("total_bill","tip",tips, scatter_kws={'marker':'o', 'color':'indianred'}, line_kws={'linewidth':1, 'color':'blue'}) >>>
引数order(多項式回帰の可視化)
seabornでは、多項式回帰も簡単に描くことが出来ます。
sns.lmplot("total_bill", "tip", tips, order=4, scatter_kws={"marker": "o", "color": "indianred"}, line_kws={"linewidth": 1, "color": "blue"})
引数fit_reg(散布図の可視化)
fit_reg=Falseを指定することで、散布図のみを描画することができます。
sns.lmplot("total_bill", "tip", tips,fit_reg=False) >>>
離散的な値の散布図の可視化
lmplotでは、離散的な値でも問題なく可視化することができます。
#チップの割合を表す、tip_pectを計算した後、描画します tips["tip_pect"]=100*(tips['tip']/tips['total_bill']) sns.lmplot("size", "tip_pect", tips) >>>
引数x_estimator(特定の推定量とその回帰を可視化)
引数x_estimatorでは、x 軸の各値に指定された関数を実行し、その返り値をプロットします。 そのプロットに対する回帰を可視化することができます。
#関数に平均を指定してみます sns.lmplot("size", "tip_pect", tips, x_estimator=np.mean); >>>
引数hue(色合いを変える)
hueとは、色合い/色調という意味の英単語で、hueを指定することで、うまく色分けして可視化することができます。
sns.lmplot("total_bill", "tip_pect", tips, hue="sex",markers=["x","o"]) >>>
グラフの分割表示
複数のグラフを同時に表示することも簡単にできます。 subplots( )の第一引数はグラフの行数を、第二引数はグラフの列数をあらわしています。
fig, (axis1,axis2) = plt.subplots(1,2,sharey =True) sns.regplot("total_bill","tip_pect",tips,ax=axis1) sns.violinplot(y='tip_pect', x='size', data=tips.sort('size') ,ax=axis2)
今回は、seabornのサンプルデータを用いて様々な回帰曲線を中心としたデータ可視化手法について学びました。
お疲れ様でした! 次回はこちら
それじゃー、また。