Seaborn———分类数据绘图

数据集中的数据类型有很多种,除了连续的特征变量之外,最常见的就是类别型的数据了,比如人的性别、学历、爱好等,这些数据类型都不 能用连续的变量来表示,而是用分类的数据来表示。
Seaborn 针对分类数据提供了专门的可视化函数,这些函数大致可以分为如下三种 :
  • 分类数据散点图: swarmplot()stripplot()
  • 类数据的分布图: boxplot() violinplot()
  • 分类数据的统计估算图:barplot() pointplot()
下面两节将针对分类数据可绘制的图形进行简单介绍,具体内容如下

1 类别散点图

通过 stripplot() 函数可以画一个散点图, stripplot0 函数的语法格式如下。
seaborn.stripplot(x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=False)
上述函数中常用参数的含义如下
  • (1) xyhue:用于绘制长格式数据的输入。
  • (2) data:用于绘制的数据集。如果xy不存在,则它将作为宽格式,否则将作为长格式。
  • (3) jitter:表示抖动的程度(仅沿类別轴)。当很多数据点重叠时,可以指定抖动的数量或者设为Tue使用默认值。
为了让大家更好地理解,接下来,通过 stripplot() 函数绘制一个散点图,示例代码如下。
# 获取tips数据
tips = sns.load_dataset("tips")
sns.stripplot(x="day", y="total_bill", data=tips)
运行结果如下图所示。
从上图中可以看出,图表中的横坐标是分类的数据,而且一些数据点会互相重叠,不易于观察。为了解决这个问题,可以在调用 striplot() 函数时 传入jitter 参数,以调整横坐标的位置,改后的示例代码如下。
sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)
运行结果如下图所示。
除此之外,还可调用 swarmplot0 函数绘制散点图,该函数的好处是所有的数据点都不会重叠,可以很清晰地观察到数据的分布情况,示例代码 如下。
sns.swarmplot(x="day", y="total_bill", data=tips)
运行结果如图所示。

2 类别内的数据分布

要想查看各个分类中的数据分布,显而易见,散点图是不满足需求的,原因是它不够直观。针对这种情况,我们可以绘制如下两种图形进行查 看:
  • 箱形图:

        箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。

        箱形图于1977年由美国著名统计学家约翰·图基(John Tukey)发明。它能显示出一组数据的最大值、最小值、中位数、及上下四分位数。

  • 小提琴图:
        小提琴图 (Violin Plot) 用于显示数据分布及其概率密度。
        这种图表结合了箱形图和密度图的特征,主要用来显示数据的分布形状。
        中间的黑色粗条表示四分位数范围,从其延伸的幼细黑线代表 95% 置信区间,而白点则为中位数。
        箱形图在数据显示方面受到限制,简单的设计往往隐藏了有关数据分布的重要细节。例如使用箱形图时,我们不能了解数据分布。 虽然小提琴图可以显示更多详情,但它们也可能包含较多干扰信息。
接下来,针对 Seaborn 库中箱形图和提琴图的绘制进行简单的介绍。
2.1 绘制箱形图
seaborn 中用于绘制箱形图的函数为 boxplot() ,其语法格式如下 :
seaborn.boxplot(x=None, y=None, hue=None, data=None, orient=None, color=None, saturation=0.75, width=0.8)
常用参数的含义如下 :
(1) palette :用于设置不同级别色相的颜色变量。 ---- palette=["r","g","b","y"]
(2) saturation :用于设置数据显示的颜色饱和度。 ---- 使用小数表示
使用 boxplot() 函数绘制箱形图的具体示例如下。
sns.boxplot(x="day", y="total_bill", data=tips)
上述示例中,使用 seaborn 中内置的数据集 tips 绘制了一个箱形图,图中 x 轴的名称为 day ,其刻度范围是 Thur~Sun( 周四至周日 ) y 轴的名称为 total_bill,刻度范围为 10-50 左右
运行结果如图所示。
从图中可以看出,
  • Thur列大部分数据都小于30,不过有5个大于30的异常值,
  • Fri列中大部分数据都小于30,只有一个异常值大于40
  • Sat一列中有3个大于40的异常值,
  • Sun列中有两个大于40的异常值
2.2 绘制提琴图
seaborn 中用于绘制提琴图的函数为 violinplot() ,其语法格式如下
seaborn.violinplot(x=None, y=None, hue=None, data=None)
通过 violinplot() 函数绘制提琴图的示例代码如下
sns.violinplot(x="day", y="total_bill", data=tips)
上述示例中,使用 seaborn 中内置的数据集绘制了一个提琴图,图中 x 轴的名称为 day y 轴的名称为 total_bill
运行结果如图所示。
从图中可以看出,
  • Thur一列中位于5~25之间的数值较多,
  • Fri列中位于5-30之间的较多,
  • Sat-列中位于5-35之间的数值较多,
  • Sun一列中位于5-40之间的数值较多。

3 类别内的统计估计

要想查看每个分类的集中趋势,则可以使用条形图和点图进行展示。 Seaborn 库中用于绘制这两种图表的具体函数如下
  • barplot()函数:绘制条形图。
  • pointplot()函数:绘制点图。
这些函数的 API 与上面那些函数都是一样的,这里只讲解函数的应用,不再过多对函数的语法进行讲解了。
3.1 绘制条形图
最常用的查看集中趋势的图形就是条形图。默认情况下, barplot 函数会在整个数据集上使用均值进行估计。若每个类别中有多个类别时 ( 使用 了hue 参数 ) ,则条形图可以使用引导来计算估计的置信区间 ( 是指由样本统计量所构造的总体参数的估计区间 ) ,并使用误差条来表示置信区 间。
使用 barplot() 函数的示例如下
sns.barplot(x="day", y="total_bill", data=tips)
运行结果如图所示。
3.2 绘制点图
另外一种用于估计的图形是点图,可以调用 pointplot() 函数进行绘制,该函数会用高度低计值对数据进行描述,而不是显示完整的条形,它只 会绘制点估计和置信区间。
通过 pointplot() 函数绘制点图的示例如下。
sns.pointplot(x="day", y="total_bill", data=tips)
运行结果如图所示。
  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值