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) # 把数据集两两之间的特征显示出来



浙公网安备 33010602011771号