前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >可视化系列:使用 Python的seaborn 包做出波士顿矩阵图,改善店铺销售水平

可视化系列:使用 Python的seaborn 包做出波士顿矩阵图,改善店铺销售水平

作者头像
咋咋
发布2021-09-01 14:42:44
1.3K0
发布2021-09-01 14:42:44
举报
文章被收录于专栏:数据大宇宙数据大宇宙

江湖流传一句话:"字不如表,表不如图",在 Python 中数据可视化有许多选择,但是大多数的库在语法简洁与灵活度不能平衡,本系列将探讨数据探索时如何使用合适的数据可视化库完成工作。

本系列或多或少涉及一些 pandas 的骚操作(网上很难看到相关的资料),其并非可视化的重点,不会多做讲解。

一切技巧与应用,尽在 pandas 专栏中

前言

不管是在数据探索还是报告阶段,数据可视化都是一个非常有用的工具。今天我们来看看如何使用四象限图(波士顿矩阵图),为店铺销售员分门别类。本系列我将尽可能使用不同的工具制作。

计划中的工具:

  • Python 的 seaborn
  • Python 的 altair (能做出动态图,这是目前能比较方便做出图表之间联动的库)
  • Python 的 plotly (能做出动态图,这是一个非常容易学习的库,前提是找到正确的思路)
  • Power BI
  • Tabluea
  • Excel

今天的主角是 seaborn

为什么需要介绍多个 Python 的可视化库?因为他们各有特点,而且我不喜欢太复杂的东西,总是在找一个最简单的可视化库。这也是我为可视化专栏做的准备工作

导入包代码如下:


用你的分析能力,提供改善建议

某商品销售店铺某天的订单数据:

  • 每一行记录表示,某订单的信息(单价多少,数量多少,是哪位销售员负责)
  • 日期列不重要,因为我们只分析一天的数据

每位销售员接待客人的记录:

  • 每个销售员接待的人数

现在你要根据这些数据,得到这些问题的答案:

  1. 换掉其中某几位员工(意味着裁员),应该裁掉谁?
  2. 从中选出某一位员工,对其他员工进行培训和销售技能分享。应该选谁分享,哪些人需要被培训?

分析指标

如果我们只是根据简单的销售数量或销售额:

这些指标不足以看出问题。在零售领域中已经有许多被证明有效的统计指标,今天我们将使用其中2个指标:

  • 客单价:能反映每个顾客的质量,这其实与大环境因素(店铺位置,商品组合等)有关,也能反映销售能力。
  • 成交率:这就能直观反映销售员的能力

假设大环境元素相对固定的情况下,我们就可以使用以上指标分析销售员的水平

如何用 pandas 得到这些指标不是本文重点,反正一顿骚操作如下:

  • 行5-9:其中的 pd.NameAgg 需要 pandas 0.25 或以上的版本才能使用

虽然得到2个重要的指标,但你能通过数据看出啥吗?

不容易吧。因为人对数字的变化不是很敏感。

但是,人对位置却极其敏感。

接下来,我们不妨把数值的差异在位置上展现出来。


散点图加点料

有2个数值指标,刚好对应二维图表的xy轴,于是很容易想到的是使用散点图:

  • 对于 seaborn 来说,散点图是数据关系可视化的一种,rel 实际是 relationships 的缩写
  • relplot 是一个图形级别的函数(意味着我们能使用他做出多种或一次性多个图表的复合图表),用他能做出多种不同的图像,默认情况下是散点图(参数 kind='scatter')

现在能大致看出这些销售员的能力位置!

但这还不够,因为还不能直观看出来哪些处于平均水平以下或以上。

那么,就在2个指标上各自加上一个均值线:

  • 使用 matplotlib 能简单画出直线
  • 行2:plt.axvline 画出垂直线(v 是 vertical 的缩写),自然地,需要在第一个参数中指定该线穿过 x 轴的哪个点
  • 行3:plt.axhline 画出横线(h 是 horizontal 的缩写),自然地,需要在第一个参数中指定该线穿过 y 轴的哪个点

现在还缺点东西,在图上看不出那些点是哪位员工。

把销售员名字加上:

  • 行2:通过 relplot 返回的对象的 axes[0] 中包含多个图表,由于现在我们只是画出简单的一个图表,因此通过索引 0 即可获取其中的图表对象(Axes)
  • 行4-6:遍历数据,通过 ax.text 就可以在图表上写字。前2个参数分别是 x,y 的位置,第3个参数是文本内容

这就是四象限图,他有如下特点:

  • 按2个指标以及指标的均值线,把平面划分出4个代表不同能力的区域
  • 一般情况尽可能使得2个指标越大表示越有优势,这样右上区域就是优秀水平,左下区为次等水平

现在可以回答文章开头的问题:

  • 员工D是最差劲的,A和H同样如此,但是H的成交率距离均值线不远(可以考虑留下考察)
  • 员工C在2项指标都高于平均水平,并且他的成交率是最高的,可以让他对B/G/F/H 做有关提高成交率的销售培训
  • 员工E在客单价方面很低(只推销低端商品),此时可以考虑让F对其培训
  • 员工B应该是最有潜力的员工

总结

seaborn 一般需要配合 matplotlib 才能做出比较复杂的图表。因此,了解 matplotlib 的对象层次是一个比较关键的学习方式。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 用你的分析能力,提供改善建议
  • 分析指标
  • 散点图加点料
  • 总结
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档