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
# 英語のページですが・・・
url = 'http://en.wikipedia.org/wiki/Box_plot#mediaviewer/File:Boxplot_vs_PDF.svg'
data1 = randn(100)
data2 = randn(100) + 2 # Off set the mean
sns.distplot(data1)
sns.distplot(data2)
# boxplotを作ります。
sns.boxplot(data=[data1,data2])
# 外れ値を含むことができます。
sns.boxplot(data=[data1,data2],whis=np.inf)
# 水平に並べることもできます。
sns.boxplot(data=[data1,data2],whis=np.inf, orient = 'h')
# Violin/Viola plot はbox plotのシンプルさとKDEの情報量を兼ね備えます。
# 正規分布に従う乱数です。
data1 = stats.norm(0,5).rvs(100)
# γ分布に従う乱数を生成します。
data2 = np.concatenate([stats.gamma(5).rvs(50)-1,
-1*stats.gamma(5).rvs(50)])
sns.boxplot(data=[data1,data2],whis=np.inf)
# ヴァイオリンプロットを描くと違いが分かります。
sns.violinplot(data =[data1,data2])
# バンド幅を細かくしてみましょう。
sns.violinplot(data=data2,bw=0.01)
# rugプロットと同じような機能もあります。
sns.violinplot(data=data1,inner="stick")