4.Seaborn可视化


如果想单独一对一辅导学习C++、Java、Python编程语言的可以加微信咨询

1.Seaborn 可视化

1.1 Seaborn简介

  • Seaborn是基于matplotlib的图形可视化python包。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。
  • Seaborn是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn能做出很具有吸引力的图,而使用matplotlib就能制作具有更多特色的图。
  • Seaborn和Pandas的API配合的很好,使用DataFrame/Series的数据就可以绘图

1.2 Seaborn单变量数据可视化

  • 导包加载数据

    import seaborn as sns
    import pandas as pd
    
    tips = pd.read_csv('data/tips.csv')
    

1.2.1 sns.displot

  • 使用sns.displot创建直方图

    sns.displot(tips['total_bill'])
    

    显示结果

    在这里插入图片描述

1.3 Seaborn 双变量数据可视化

1.3.1 sns.regplot

  • regplot函数可以创建散点图,同时还会拟合回归线。参数fit_reg设置为False,将只显示散点图
sns.regplot(x='total_bill',y='tip',data=tips)

显示结果

在这里插入图片描述

1.3.2 sns.jointplot

  • jointplot在每个轴上创建包含单个变量的直方图。
sns.jointplot(x='total_bill',y='tip',data = tips)

显示结果

在这里插入图片描述

  • jointplot绘制蜂巢图
sns.jointplot(x='total_bill',y='tip',data = tips,kind='hex')

显示结果

在这里插入图片描述

1.3.3 sns.barplot

  • 条形图也可以用于展现多个变量
# 按照time进行分组,对total_bill进行聚合操作,默认是求平均的聚合函数,estimator可以接收别的聚合函数如sum
sns.barplot(x='time',y='total_bill',data=tips) 

显示结果

在这里插入图片描述

1.3.4 sns.boxplot

  • 箱线图用于显示多种统计信息:最小值,1/4分位,中位数,3/4分位,最大值,以及离群值(如果有)
sns.boxplot(x='time',y='total_bill',data = tips)

显示结果

在这里插入图片描述

1.3.5 sns.pairplot

  • 当大部分数据是数值时,可以使用pairplot函数把所有成对关系绘制出来
  • pairplot函数会为单变量绘制直方图,双变量绘制散点图
sns.pairplot(tips)

显示结果

在这里插入图片描述

  • pairplot的缺点是存在冗余信息,图的上半部分和下半部分相同
  • 可以使用pairgrid手动指定图的上半部分和下半部分
pair_grid = sns.PairGrid(tips)
pair_grid.map_upper(sns.regplot)
pair_grid.map_lower(sns.kdeplot)
pair_grid.map_diag(sns.histplot)

显示结果

在这里插入图片描述

1.4 多变量数据

  • 绘制多变量数据没有标准的套路
  • 如果想在图中包含更多信息,可以使用颜色、大小和形状来区分它们

1.4.1 通过颜色区分

  • 使用violinplot(小提琴图)函数时,可以通过hue参数按性别(sex)给图着色
  • 可以为“小提琴”的左右两半着不同颜色,用于区分性别
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)

显示结果

在这里插入图片描述

  • 其它绘图函数中也存在hue参数
sns.lmplot(x='total_bill',y='tip',data = tips,hue='sex',fit_reg = False)

显示结果

在这里插入图片描述

  • 通过向hue参数传入一个类别变量,可以让pairplot变得更有意义
sns.pairplot(tips,hue = 'sex')

显示结果

在这里插入图片描述

1.4.2 通过大小和形状区分

  • 可以通过点的大小表示更多信息,但通过大小区分应谨慎使用,当大小差别不大时很难区分

  • 在Seaborn中的lmplot,可以通过scatter_kws参数来控制散点图点的大小

sns.lmplot(x='total_bill',y='tip',data = tips,fit_reg=False,hue='sex',markers=['o','x'])

显示结果

在这里插入图片描述

1.5 Seaborn主题和样式

  • 上面的Seaborn图都采用了默认样式,可以使用sns.set_style函数更改样式。

  • 该函数只要运行一次,后续绘图的样式都会发生变化

  • Seaborn有5中样式

    • darkgrid 黑色网格(默认)
    • whitegrid 白色网格
    • dark 黑色背景
    • white 白色背景
    • ticks
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)

显示结果

在这里插入图片描述

  • 通过set_style设置样式
sns.set_style('whitegrid')
sns.violinplot(x='time',y='total_bill',hue='sex',data = tips,split = True)

显示结果

在这里插入图片描述

总结

  • Seaborn是对Matplotlib以及Pandas的封装,与Series,DataFrame的API配合很好
  • Seaborn的API非常简单
  • 推荐使用Seaborn或Pandas进行绘图,如果需要对图形控制比较精细,可以使用Matplotlib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程牛

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值