数据可视化 | 20行代码玩转象限图!

Python 的绘图功能非常强大,如果能将已有的绘图库的各种复杂操作汇总在一个自己写的函数甚至是库/包中,并实现一行代码就调用并实现复杂的绘图功能,那就更是如虎添翼。

今天,我们就来讲讲一学就会的象限图。

上图学名叫波士顿矩阵分析图,大白话四象限图。这种图经常用于两个维度的散点图中,根据特定的分割线(均值,目标值,实际值等)将数据分为四类,使人一目了然。

常用的场景为分析两个维度的变化比如:比较商品的库存天数和库存周转率,充值人数和每付费用户平均收益,购物篮系数和购物篮数量等

如何使用 Python 画出此图是本文的目标,事不宜迟,赶快开始!

任何复杂的 Python 绘图都不是一蹴而就的,而是先画出基础图形,后在此基础上按需添加元素并优化而成。这里以一组城市经济数据为例来讲解绘图步骤

   基础散点图

df = pd.read_csv('data.csv')df; df.plot(kind='scatter', x='经济总量水平', y='人均水平')

简洁又朴素的散点图,仅需一行代码。离期望成图还差几步

  • 为每个点添加对应的城市名称

  • 添加特定的分割线(均值,目标值,实际值)

  • 背景添加网格

  • 一些其他的定制需求...

   图像优化

成图如下:

从上图可以看出:

  • 广西,河北,福建三地的人均水平和经济总量水平都偏低

  • 上海的人均经济水平很高,但经济总量水平缺只是略优于均值

  • 广东的人均经济水平稍次于均值,但经济总量水平很高

  • 等等~

当然,如果我们通过添加数量更多的定制线也可以实现常用的九宫格图

《数据化管理》库存天数与销售数量分析

最后总结一下,Python 的一些绘图方法、参数看似琐碎,但积累到一定程度后,便可以发现许多技巧都存在共通之处。小事情重复做也会成为大麻烦,所以高手都懂得分类处理。

贯通了 3 个核心,我们才能省时省事,成为别人眼中的高手:

  • 大量重复的工作懂得批处理。

  • 反复要做的固定操作固化成 " 模板 “,” 套路 "。

  • 碰到异常情况,知道如何准确高效的解决。

所以我们可以将四象限图的绘制方法封装成自己的函数以供快捷调用,篇幅原因就不多展示了。

上文核心代码如下:

import matplotlib.pyplot as plt


# 为每个点添加对应的城市名称
plt.figure(figsize=(10, 8))
# 基础散点图:这里需要单独拆开 x,y 轴和希望配对的标签,为下面的轮子做准备
x, y = df['经济总量水平'], df['人均水平']
label = df['area']
plt.scatter(x, y)
plt.xlabel('经济总量水平'); plt.ylabel('人均水平')


# 对散点图中的每一个点进行文字标注
 ## 固定代码,无需深究,拿来即用
for a,b,l in zip(x,y,label): # zip 拉链函数将其配对组合
    plt.text(a, b+0.1, '%s.' % l, ha='center', va='bottom', 
                                             fontsize=14)
               # 0.1 向上轻微偏移
        
# 添加特定分割线
 ## vlines: vertical 垂直于 x 轴的线,在变量'经济总量'的均值处开始画,
   ## y 轴的范围[1.5, 3]
plt.vlines(x=df['经济总量水平'].mean(), ymin=-1.5, ymax=3, 
           colors='red', linewidth=2)
plt.hlines(y=df['人均水平'].mean(), xmin=-4, xmax=6,
           colors='red', linewidth=2)


# 背景网格
plt.grid(True)
# 定制需求:隐去四周的边框线条
# sns.despine(trim=True, left=True, bottom=True)

今天的案例先到这里,如果对案例代码和数据源感兴趣,后台回复“象限图”,即可获取文中完整数据和代码~

2020中国独角兽分析报告!

12000+字超详细 SQL 语法速成!

后台回复“入群”即可加入小z干货交流群

Get!????

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供完整的500代码。但我可以给你一些关于如何进书畅销榜数据可视化分析的提示和建议。 1. 数据收集和整理 首先,你需要收集不同书籍在畅销榜上的排名数据。这个数据可以通过爬虫来获取,或者通过API来获取。你需要将数据整理成一个表格或者数据库的形式,包括书名、作者、出版社、排名、销售量等信息。 2. 数据可视化 接下来,你需要使用数据可视化工具来对数据进可视化。常用的数据可视化工具包括Matplotlib、Seaborn、Plotly等。你可以选择适合自己的工具来进可视化。 下面是一些可以进数据可视化操作: - 绘制书籍排名随时间变化的趋势,可以查看书籍在畅销榜上的排名变化情况。 - 绘制书籍销售量随时间变化的趋势,可以查看书籍销售情况的变化。 - 绘制书籍排名与销售量的散点,可以查看排名与销售量之间的关系。 - 绘制不同作者或出版社的书籍在畅销榜上的排名分布,可以查看不同作者或出版社的书籍在畅销榜上的表现情况。 3. 数据分析 最后,你可以对数据进分析,找出其中的规律和趋势。一些可能有用的分析方法包括: - 对书籍排名和销售量进回归分析,找出排名和销售量之间的关系,并预测未来的销售情况。 - 对不同作者或出版社的书籍在畅销榜上的表现进比较,并找出其中的差异和原因。 - 对畅销榜上不同类型的书籍进比较,并找出最受欢迎的书籍类型。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值