前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >真香,这个python老牌可视化库seaborn,十年积累后的进化,全新使用方式

真香,这个python老牌可视化库seaborn,十年积累后的进化,全新使用方式

作者头像
咋咋
发布2023-11-13 16:26:13
2250
发布2023-11-13 16:26:13
举报
文章被收录于专栏:数据大宇宙数据大宇宙

在Python数据可视化领域,知名度最高的当属 matplotlib,但此库存在操作复杂的问题。基于此,seaborn简化了操作流程而闻名,尽管其使用方式仍存在一些缺点。因此,在经历10年的打磨后,seaborn团队在更新至0.12版时提出了全新的操作模式。试用之后,已经不想再用回旧模式了。下面我们就体验一下新版seaborn。

本次使用的是 seaborn 0.13 版本。 pip install seaborn -U

这次的新模式称为 objects interface ,我称为对象接口。

按文档约定,导入模块:

新模式的相关功能访问,全部都在 seaborn.objects 模块中。

接着导入我们的数据,一份咖啡销售数据:

在作图之前,进行一些配置,防止图表中的中文变成乱码。

接下来可以愉快作图。

首先,看看利润和销售额的关系。既然是两个数值类型,就用散点图。

  • 行2:新模式遵从可视化图形语法。首先通过 so.Plot ,声明数据和映射关系
  • 行3:接着链式调用 add 方法。每一个 add 方法就是一个单独的图表。
  • 行4:add 方法中,第一个参数是表明需要的图形。这里使用 so.Dot() 表示"点"

原来的方式,是这样子写:

初看新模式的代码感觉更麻烦。但是,接下来的事情,你会开始感受到新模式的魅力。

现在,希望在上图基础上,添加一条拟合折线:

之前说到,每次调用 add 方法,就是新增一个图表(图层)。而 add 方法第一个参数指定图案(可以理解成图表类型),之后的参数,表达对数据的转换处理。这里写的 so.PolyFit 就是拟合运算。运算完全可以自定义,稍后我们会看到。

要学好一个库,就要总结它的核心流程。看一个示意图:

正是由于一开始声明了数据映射,这些映射会传递到下方每一个图层。所以在作图的时候,我们只需要告诉 seaborn,这一层我需要用点的图案表达每个数据,就得到了散点图。线图同样如此。

相比传统的一个函数一个图表的旧模式,新模式大大减少了我们使用上的负担。

再看一个例子:

现在不需要拟合线,并且希望把散点按不同的地区查看。

按不同地区查看,不就是要每个地区有单独的颜色吗?代码显然已经了:

  • 行2:颜色映射到 区域

就这么简单。可以非常多的属性可以做映射。比如我们希望点的大小,反映数据中的 毛利

是不是很香!现在真的别问我旧模式该怎么实现上面的效果了。

有人可能会疑惑,如果按照上面的映射,把一开始的拟合线加回去,会怎么样呢?

先不看结果来思考一下。数据映射会传递到线图的图层,那么应该会存在多种颜色的折线吧?

现在我们是真的理解了它的机制,不过,我们可是希望上面仍然只有一条拟合线,表示整体的拟合呀。

不怕,每个图层都可以覆盖掉 Poly 定义的映射。

是不是感觉一下子就学会了!?


再看一些例子,加深印象。

做一个区域的销售额的柱状图:

别急,你觉得对吗?

如果你执行上面的代码,就会发现作图时间很长。注意上图左下角,我这边足足执行了16秒。图也有点奇怪。

思考一下它的流程,当执行 add 的时候,看到我们用 so.Bar ,但没有指定聚合方式!因此,它就以每一行记录做一个 bar 图,按 x ,y 的配置,在图层上画出来。

现在我们指定一下 bar 图的聚合方式。

瞬间出来结果。现在每个柱子都是经过平均聚合的数据。 so.Agg 第一个参数可以指定聚合方式,默认是 'mean',你也可以传入任何的聚合函数或自定义的函数。与 pandas 的 agg 一样的原理。

继续,上图基础,再按市场类别,查看。也就是映射颜色:

好像不对劲!怎么小市场(small market) 比 主市场 (major market) 销售额更多。

再次分析一下它的过程你就懂了:

数据映射了 x,y,color,于是,数据达到 bar图层时,需要按x,color两个字段分组,并对y列做平均聚合(so.Agg())

聚合后的数据结果如下:

相信到这一步,你已经秒懂了。就是用这8行数据画柱状图。显然,同一个区域有两个柱子,并且重叠起来。

怎么解决?很简单,让它们每行数据的x轴位置一个往左,另一个往后移动一下,不就可以了吗?

这也是一种数据操作。只需要在 add 图层里面加入即可。

add图层中,除开第一个参数指定图案类型,你可以指定无数个数据处理的函数

seaborn 提供了一些常用的数据操作方法。按需掌握即可。

赶快用起来,真的很香。

不要忘记一键三连。你的点赞、收藏、关注,是我创作的动力。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-10,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com