Seaborn数据可视化教程

Seaborn是一个基于Matplotlib的数据可视化库,它提供了一个高级接口来绘制吸引人且信息丰富的统计图表。本文将学习如何使用Seaborn库创建基本的图表,例如散点图、直方图、条形图、箱线图和成对图。将使用名为Toyota Corolla的汽车数据集作为示例。

散点图

散点图用于展示两个或三个数据点之间的线性关系。使用Seaborn库创建的散点图如下所示:

plt.style.use("ggplot") plt.figure(figsize=(8,6)) sns.regplot(x = cars_data["Age"], y = cars_data["Price"]) plt.show()

在这里,regplot代表回归图。默认情况下,fit_reg=True,它会估计并绘制一个回归模型,关联x和y变量。

三变量散点图

如果想要在散点图中加入一个分类变量,例如按照燃油类型展示价格与车龄的关系,可以使用Seaborn库中的lmplot函数。

sns.lmplot(x='Age', y='Price', data=cars_data, fit_reg=False, hue='FuelType', legend=True, palette="Set1",height=6)

legend=True用于显示不同燃油类型的颜色分类,而palette参数用于设置颜色方案,这里使用"Set1"。

直方图

Seaborn中,可以使用distplot函数绘制直方图,并传入想要包含的变量。默认情况下,直方图会包含核密度估计(kde):

plt.figure(figsize=(8,6)) sns.distplot(cars_data['Age']) plt.show()

如果想要移除核密度估计,可以设置kde=False。

条形图

条形图用于展示分类变量。使用Seaborn的countplot函数可以很容易地绘制条形图。例如,可以绘制汽车燃油类型的条形图:

plt.figure(figsize=(8,6)) sns.countplot(x="FuelType", data=cars_data) plt.show()

在y轴上,得到了汽车燃油类型的频率分布。

分组条形图

可以绘制两个变量之间的条形图,称为分组条形图。例如,可以绘制按自动档分类的燃油类型分布条形图:

plt.figure(figsize=(8,6)) sns.countplot(x="FuelType", data=cars_data, hue="Automatic") plt.show()

箱线图

箱线图用于分析数据集的详细分布。可以绘制数据集中价格列的箱线图,以直观解释“五数概括”。五数概括包括最小值、最大值和三个四分位数(第一四分位数、中位数和第三四分位数)。

plt.figure(figsize=(8,6)) sns.boxplot(y=cars_data["Price"]) plt.show()

在这里,IQR是四分位距:IQR = Q3-Q1。超出须线的部分称为异常值。异常值或极端值位于1.5倍中位数值之外。

成对图

成对图用于绘制数据集中列之间的成对关系。它将为联合关系创建散点图,为单变量分布或关系创建直方图。成对图将显示数据集中所有不同变量之间的关系。在成对图中,可以传递hue参数。hue是想要计算成对图的参数。例如,可以将FuelType作为hue参数来绘制成对图。

sns.pairplot(cars_data, kind="scatter", hue="FuelType") plt.show()

在这里,可以看到散点图和直方图。散点图是成对图的默认类型。当x轴和y轴是同一个变量时,会绘制直方图,这是一个单变量分布。

让在同一窗口中绘制箱线图和直方图。首先,需要将绘图窗口分成两部分。为此,可以使用plt.subplots:

f, (ax_box,ax_hist) = plt.subplots(2, gridspec_kw={"height_ratios":(.15,.85)}) f, (ax_box,ax_hist) = plt.subplots(2, gridspec_kw= {"height_ratios":(.15,.85)}) sns.boxplot(cars_data["Price"], ax=ax_box) sns.distplot(cars_data["Price"], ax=ax_hist, kde=False) plt.show()
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485