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")
tips.head()
# lmplot() x=total bill y=tipsでプロットします。
sns.lmplot("total_bill","tip",tips)
# グラフごとにパラメータを変えられます。
sns.lmplot("total_bill","tip",tips,
scatter_kws={'marker':'o', 'color':'indianred'},
line_kws={'linewidth':1, 'color':'blue'})
# 4次関数で回帰曲線をひくこともできます。
sns.lmplot("total_bill", "tip", tips, order=4,
scatter_kws={"marker": "o", "color": "indianred"},
line_kws={"linewidth": 1, "color": "blue"})
# 単なるプロットもできます。
sns.lmplot("total_bill", "tip", tips,fit_reg=False)
# 離散的な値でもlmplot()は使えます。
# チップの割合を計算します。
tips["tip_pect"]=100*(tips['tip']/tips['total_bill'])
tips.head()
sns.lmplot("size", "tip_pect", tips)
sns.lmplot("size", "tip_pect", tips, x_jitter=0.2)
# 特定の推定量を描画することもできます。
sns.lmplot("size", "tip_pect", tips, x_estimator=np.mean);
# hueが便利です。
sns.lmplot("total_bill", "tip_pect", tips, hue="sex",markers=["x","o"])
sns.lmplot("total_bill", "tip_pect", tips, hue="day")
# LOESSの説明(英語)です。
url = 'http://en.wikipedia.org/wiki/Local_regression'
sns.lmplot("total_bill", "tip_pect", tips, lowess=True, line_kws={"color": 'black'});
# lmplot() は実は、もっと低レベルな関数regplotを使っています。
sns.regplot("total_bill","tip_pect",tips)
# 描画のエリアを分割することもできます。
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)