Seaborn-3 单变量分析绘图

导入需要的模块和数据集。

1 %matplotlib inline
2 import numpy as np
3 import pandas as pd
4 from scipy import stats, integrate
5 import matplotlib.pyplot as plt
6 import seaborn as sns
7 sns.set(color_codes=True)
8 np.random.seed(sum(map(ord, "distributions")))

直方图(histograms)

直方图在横坐标的数据值范围内均等分的形成一定数量的数据段(bins),并在每个数据段内用矩形条(bars)显示y轴观察数量的方式,完成了对的数据分布的可视化展示。

在 seaborn 中,快速观察单变量分布的最方便的方法就是使用 distplot() 函数。默认会使用柱状图(histogram)来绘制,并提供一个适配的核密度估计(KDE)。

1 x = np.random.normal(size=100)
2 sns.distplot(x,kde=False);

 

1 sns.distplot(x, bins=20, kde=False);

拟合参数分布

1 x = np.random.gamma(6, size=200)
2 sns.distplot(x, kde=False, fit=stats.gamma);

 

根据均值和协方差生成数据

1 mean, cov = [0, 1], [(1, .5), (.5, 1)] # 均值,协方差
2 data = np.random.multivariate_normal(mean, cov, 200)
3 df = pd.DataFrame(data, columns=["x", "y"])
4 df

Scatterplots

观测两个变量之间的分布关系最好用散点图。在散点图中每个观察结果以x轴和y轴值所对应的点展示。

可以用 matplotlib 的 plt.scatter 函数来绘制一个散点图,它也是jointplot()函数显示的默认方式。

1 sns.jointplot(x="x", y="y", data=df);

 

Hexbin plots

直方图 histogram 的双变量类似图被称为 “hexbin” 图,因为它展示了落在六角形箱内的观测量。这种绘图对于相对大的数据集效果最好。它可以通过 matplotlib 的 plt.hexbin 函数使用,也可以作为 jointplot 的一种类型参数使用。它使用白色背景的时候视觉效果最好。

1 x, y = np.random.multivariate_normal(mean, cov, 1000).T
2 with sns.axes_style("white"):
3     sns.jointplot(x=x, y=y, kind="hex", color="k"); # 在数据量大的时候使用hex图

可视化数据集成对关系

可以使用 pairplot() 函数绘制数据集中多个成对的双变量。这创建了一个轴矩阵,并展示了在一个 DataFrame 中每对列的关系。默认情况下,它也绘制每个变量在对角轴上的单变量。

1 iris = sns.load_dataset("iris") # 把数据集加载进来
2 sns.pairplot(iris) # 把数据集两两之间的特征显示出来

 

 

posted on 2018-07-30 20:07  炸鸡配啤酒  阅读(140)  评论(0)    收藏  举报