本文将介绍一个python的数据可视化利器,seaborn结合matplotlib,在数据Exploration阶段助你无往不利!
我们拿到数据,第一件事就是想看看数据的分布,本章将介绍一元变量的分布。
首先导入必备的库:
%matplotlib inline
import pandas as pd
import numpy as np
from scipy import stats, integrate
import matplotlib,pyplot as plt
import seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "distribution")))
一元变量分布的画法
一元变量最快速的画法是distplot(), 默认将绘制直方图和核密度估计图(KDE)
x= np.random.normal(size=100)
sns.distplot(x)
直方图(Histograms)
matplotlib中也有个直方图函数hist,表示每个bins中间散落的数据的个数,以此表示数据的分布。我们去掉密度曲线,使用rug(每个数据一个小竖线)来显示。当然单独的rugplot也能显示。
sns.distplot(x, kde=False, rug=True)
核密度估计(Kernel density estimaton)
在绘制分布的形状上KDE是很有效的,y轴表示了密度值。
sns.distplot(x, hist=False, rug=True)
带阴影的
sns.kdeplot(x, shade=True)
高斯KDE,反应整体走势,去除极值
sns.kdeplot(x)
sns.kdeplot(x, bw=.2, label="bw: 0.2")
sns.kdeplot(x, bw=2, label="bw: 2")
plt.legend()
另一个反应极值的参数是cut
sns.kdeplot(x, shade=True, cut=0)
sns.rugplot(x);