Python实战案例:Seaborn图形化分析数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

Python实战案例:Seaborn图形化分析数据


Seaborn是基于matplotlib的图形可视化python工具包。它提供了一种高度交互式界面,使用户能够做出有统计的图表,也可以通过图表直观显示数据的特点。 Seaborn是在matplotlib的基础上进行了更高级的API封装,这样使作图更容易,使用seaborn能做出很具有吸引力的图。可以把Seaborn视为matplotlib的有效补充,而不是替代模块,使用Seaborn可以更好的结合matplotlib进行针对性的数据分析图形展示。

一、Seaborn 的安装


Seaborn的安装命令比较简单。

pip3 install seaborn

不过需要注意的是,可能在安装过程中会报错,由于seaborn包依赖于scipy包,所以这里要先装scipy。
这样,安装模块的命令就变成:

pip3 install scipy
pip3 install seaborn

或者加入-U参数,安装Seaborn时同时安装Seaborn的依赖。

pip3 install seaborn -U

二、读取单车数据用Seaborn图形展示

由于Seaborn可以兼容pandas数据结构,可以用Pandas读取单车数据,后面继而用Seaborn进行数据分析的展示。
Pandas使用read_csv来读取单车数据,describe()可以查看DataFrame中数据的基本情况参数。如下图所示。

在这里插入图片描述在读取的数据,可以看到的维度有season是季节,yr是年的意义,mnth是月份的意义,holiday是否是假日,weekday指是否是周末,workingday是否是工作时间,weathersit是不同的天气情况,temp是实际温度的情况,atemp是体感温度的情况,hum表示湿度的意思,windspeed是风速的情况等等这些维度信息来说明cnt租车数量情况。

三、Seaborn热力图的绘制

在单车数据中的相关维度中,比较这些维度中相关性是进行降维最重要的参考,数据分析的具体工作离不开降维,Seaborn中heatmap是绘制热力图的方法,可以从热力图的颜色和相关系数值上找到相关系数比较高的维度。相关代码如下。

ss=data.corr()
pyplot.figure(figsize=(15,8))
seaborn.heatmap(ss,cmap=“jet”,annot=True)

这里corr()表示的是相关系数的问题,seaborn.heatmap是热力图的意思。具体格式如下。

seaborn.heatmap(data, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)

参数中data是需要显示的数据。使用方法如下。

ax = seaborn.heatmap(data)

参数中的vmax和vmin是显示的数据值的最大和最小的范围

ax = seaborn.heatmap(data,vmin=0, vmax=1)

参数中的cmap是matplotlib颜色表名称或对象,或颜色列表,可选从数据值到色彩空间的映射。如果没有提供,默认设置。如下面的代码。

ax = seaborn.heatmap(data,vmin=0, vmax=1)

其它参数简单说明一下。

center : 指定色彩的中心值
robust : 如果“Ture”和“ vmin或” vmax不存在,则使用强分位数计算颜色映射范围,而不是极值。
annot : 如果为True,则将数据值写入每个单元格中
fmt : 表格里显示数据的类型
annot_kws : 未知:
linewidths : 划分每个单元格的线的宽度。
linecolor : 划分每个单元格的线的颜色。
cbar : 是否绘制颜色条:colorbar,默认绘制
cbar_kws : 未知 cbar_ax : 显示x-y坐标,而不是节点的编号
square : 为‘True’时,整个网格为一个正方形
xticklabels, yticklabels : 可以以字符串进行命名,也可以调节编号的间隔,也可以不显示坐标

本例中,seaborn.heatmap(ss,cmap=“jet”,annot=True)语句是对ss进行绘图,cmap是使用jet类型的显示等高线图的colormap,annot设置为True把相关系数值定入单元格中。
代码执行的结果如下图所示。

在这里插入图片描述
从图中结果上显示可以看出,去掉对角线的1,深红色的就是相关性比较高的,图中atemp和temp是0.99,并且深红色,即实际温度和体感温度的相关性比较高。

四、Seaborn热力图的绘制

箱型图其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,最上面的线叫上边沿,下面的线叫下边沿,中间的箱是由四分位线组成的箱,箱里面的线叫中位线,其主要包含六个数据节点,将一组数据从大到小排列,分别计算出他的上边缘,上四分位数Q3,中位数,下四分位数Q1,下边缘,还可能有一个异常值。
Seaborn中使用boxplot进行箱型图的绘制,具体指令和执行效果如下图所示。

在这里插入图片描述图中所示的效果就是一个箱型图,具体的标注解释如下图所示。
在这里插入图片描述

五、Seaborn小提琴图的绘制

小提琴图 (Violin Plot)是用来展示多组数据的分布状态以及概率密度。这种图表结合了箱形图和密度图的相关特征,主要用来显示数据的整体分布形状。跟箱形图类似,但是在密度层面展示更好。
Seaborn使用violinplot来绘制小提琴图,具体指令和执行效果如下图所示。

在这里插入图片描述图中所示的小提琴图概念解释如下图所示。

在这里插入图片描述

六、条形图

条形图表示数值变量与每个矩形高度的中心趋势的估计值,并使用误差线提供关于该估计值附近的不确定性的一些指示。
Seaborn使用barplot绘制条形图,具体指令和执行效果如下图所示。

在这里插入图片描述

七、分簇散点图

分簇散点图 可以理解为数据点不重叠的分类散点图
Seaborn使用swarmplot可以自己实现对数据分类的展现,也可以作为盒形图或小提琴图的一种补充,用来显示所有结果以及基本分布情况。具体指令和执行效果如下图所示。

在这里插入图片描述
从画图的很多效果上看,Seaborn可以为数据分析带来异常的直观感,也可以通过小提琴图展示数据的密度,是matplotlib画图的一个很好的补充。

代码的github地址:https://github.com/wawacode/seaborn_drawing_pictures

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:博客之星2020 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

play_big_knife

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值