在处理一组数据时,通常想做的第一件事就是了解变量的分布情况。这一章将简要介绍 seaborn
中用于检查单变量和双变量分布的一些工具。
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
import warnings
warnings.filterwarnings('ignore')
sns.set(color_codes=True)
绘制单变量分布
在seaborn
中想要快速查看单变量分布的最方便的方法是使用distplot()
函数。默认情况下,该方法将会绘制直方图histogram
并拟合[内核密度估计] kernel density estimate (KDE)
.
x = np.random.normal(size=100)
sns.distplot(x)
<Axes: ylabel='Density'>
直方图
对于直方图我们可能很熟悉,而且matplotlib
中已经存在hist
函数。 直方图首先确定数据区间,然后观察数据落入这些区间中的数量来绘制柱形图以此来表征数据的分布情况。 为了说明这一点,让我们删除密度曲线并添加一个rug plot
,它在每个观察值上画一个小的垂直刻度。您可以使用rugplot()
函数来创建rugplot
本身,但是也可以在distplot()
中使用:
sns.distplot(x, kde=False, rug=True)
<Axes: >
在绘制柱状图时,您的主要选择是要使用的“桶”的数量和放置它们的位置。distplot()
使用一个简单的规则来很好地猜测默认情况下正确的数字是多少,但是尝试更多或更少的“桶”可能会揭示数据中的其他特性:
sns.distplot(x, bins=20, kde=False, rug=True)
<Axes: >
核密度估计
可能你对核密度估计不太熟悉,但它可以是绘制分布形状的有力工具。和直方图一样,KDE 图沿另一个轴的高度,编码一个轴上的观测密度:
sns.distplot(x,<