Seaborn 是一个出色的数据可视化库,它让我们的生活变得轻松。首先,您应该在编辑器中键入以下命令:
import seaborn as sns
本文我们选取了一份北京二手房房价数据集,包含字段有:
区域、卧室数、客厅数、面积、楼层、靠近地铁、靠近学校、房屋价格(单价)、经度、纬度、位置等信息。
我们想使用可视化方法初步探索各种因素是如何影响北京房价的。
一、房屋单价/房屋面积整体分布情况
—使用图形:直方图 (Distplot)
sns.distplot()结合直方图并绘制核密度估计图。这里 bin 区间大小是自动计算的。
现在,由于我们已经加载了数据集df,我们将使用 “price” 变量创建第一个图。让我们从房价数据集创建“price” 变量的 distplot。
sns.distplot(df['price'], bins=20, color='purple')
我们推测 — “price”变量本质上是倾斜的,大多数房屋单价都在4万~7万之间的范围内。
再看一下房屋面积:
sns.distplot(df['AREA'], bins=20,color='purple');
可以看到,“AREA”变量也呈现右偏的状态,大多数房屋面积都在 60~110平米之间的范围内。
二、探究房屋面积对房屋单价的影响
—使用图形:联合分布图 (Jointplot)
联合分布图 (Jointplot)采用两个变量并一起创建直方图和散点图。
让我们从房价数据集创建 AREA 和 price 变量的联合分布图。通常,让我们看看这个情景下是什么样的。代码如下:
如上所述,散点图似乎显示房屋单价和面积之间并没有显著的相关关系。在它的顶部,我们可以看到各个变量的直方图。
Jointplot :: kind =”hex”
当设置这个参数,直方图的双变量类比称为“hexbin”图,因为它显示了六边形区间内的观察计数。此图对于相对较大的数据集最有效。也称为Hexbin Plots。
有几种类型的值可以放在 sns.jointplot 中来创建不同的图。默认情况下,联合分布图显示散点图。现在,在上面的情节图中,它显示了六边形。六边形的深色表示数据点的高密度,其中较浅的颜色表示较少的点。
kind 参数值可以是以下取值:
kind : {"scatter" | "reg" | "resid" | "kde" |"hex" }
三、各地区、地铁房、学区房分布和房屋单价
使用图形-条形图 (Barplot)
条形图用于绘制分类列和数字列。它在可视化中创建了条形。让我们用“CATE”和“subway”创建一个“price”的条形图,让我们看看哪类房屋单价高。
数据显示,西城区的房屋平均单价最高,石景山地区的房屋平均单价最低。
可以看到,靠近地铁和靠近学区的房屋单价有更高的表现。
箱形图也可以形象地展示这种关系, (Boxplot)是给定数据集的五点汇总统计的直观表示。五个数字摘要包括:
Minimum 最小值
First Quartile 1/4 值
Median (SecondQuartile) 中位数
Third Quartile 3/4 值
Maximum 最大值
此外,值得注意的一点是,为分类 - 连续变量创建了一个箱线图,这意味着如果x轴是分类的并且y轴是连续的,则应创建箱线图或小提琴图。
比如,让我们从df数据集创建一个 “floor” 和 “price” 的箱线图。