暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python数据分析笔记#9.2.4 pandas绘制散点图

Yuan的学习笔记 2022-04-01
1348



「目录」

绘图和可视化

Plotting and Visualization

  • 9.1 => matplotlib

  • 9.2 => pandas和seaborn绘图

    -------> 线型图

    -------> 柱状图

    -------> 直方图和密度图

    -------> 散布图或点图

    -------> 分面网格(facet grid)和类型数据


散布图或点图

昨天标题写错了...每次出错都是发出去了以后才发现...无语。

点图和散布图是观察两个一维数据序列之间的关系的有效手段。

然后这里我没有选取原书作者给的数据集,我自己找了一个更有趣点数据集,是Kaggle上房价预测的数据集

先读取这个csv文件,然后打印前十行

house_price = pd.read_csv(r'./house_price.csv')
house_price[:10]

然后选择了几项和房价相关的属性,'LotFrontage':距离街道的直线距离,'LotArea':地皮面积,'SalePrice':销售价格这几列,通过dropna方法丢掉了所有为空的行,并且这里只选择了地皮面积小于20000平方英尺的房子,有个别房子太大了,超过20万平方英尺的都有,因为数量太少又偏离其他的太多,就过滤掉了:

data = house_price[['LotFrontage''LotArea''SalePrice']].dropna()
data = data[data['LotArea']<20000]
data.head()

先看一下地皮面积的分布,主要分布在10000平方英尺附近。

plt.figure()
sns.distplot(data['LotArea'], bins=50)

然后是距离街道的直线距离的分布:

plt.figure()
sns.distplot(data['LotFrontage'], bins=50, color='g')

最后看一下房价的分布

plt.figure()
sns.distplot(data['SalePrice'], bins=50, color='red')

这里我们用seaborn绘制散点图,X轴是地皮面积,Y轴是房价,散点的颜色color为橘色,透明度alpha为0.3:

plt.figure()
sns.scatterplot('LotArea''SalePrice', data=data, color='orange', alpha=0.3)

我们可以看到在地皮面积10000平方英尺左右,房价在100000到200000左右的点最密集。

seaborn的regplot方法,可以在画散点图的同时,再加上一条线性回归的线:

plt.figure()
sns.regplot('LotArea''SalePrice', data=data, color='orange', scatter_kws={'alpha':0.2})

所以的确是地皮面积越大,房价越贵的(虽然好像是废话,但就当验证了嘛)

sns.pairplot可以观察一组变量的散点图(散点图矩阵scatter plot matrix),对角线上是每个变量的直方图或密度估计,别的位置则是变量间的散点图:

sns.pairplot(data, plot_kws={'alpha':0.2})

就这样吧,BYE-BYE!!


-END-


往期回顾


Pandas绘制直方图和密度图




Stay hungry, stay foolish

文章转载自Yuan的学习笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论