每日一课 | Python数据可视化—如何分区和绘图


06

大家好,我是营长,昨天营长分享了数据科学”的知识点:,不清楚的小伙伴可戳这????每日一课|Python数据可视化-重新认识坐标系

本期营长接着为大家分享Python数据可视化相关内容

这期分享营长邀请的是齐伟(Python大学教材及畅销书作者)分享案列上手-Python数据可视化

作者寄语

努力面前,忘记背后,向着标杆直跑。

当遇到貌似无法克服的困难时,当怀疑自己是否能够学会时,当受到其他诱惑想放弃时,请来读一读这句话。

详细开篇词,可戳此链接:https://gitbook.cn/gitchat/column/5c6cd09e7fa9074fde9c8909/topic/5c6cd10f7fa9074fde9c890a

06

如何分区和绘图

在图纸上绘图,有时候整张图纸只绘制一幅图,有时候要绘制多幅图。在 Matplotlib 中要实现这种功能,可以使用 plt.subplots,前面已经用过此函数,此处要深入理解它的特点。

首先,要引用 Matplotlib 的模块。

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['axes.unicode_minus'] = False

1.3.1 分区

在前面编写可视化代码的时候,plt.subplots() 已经出现过了,它返回了一个图像对象和一个坐标系对象。但是,在以往调用的时候,没有向函数提供任何参数。如果像下面代码这样,就不会只返回一个坐标系对象了。

fig, ax = plt.subplots(3, 3, sharex='col', sharey='row')

输出结果:

从输出结果中可知,现在得到了 3 × 3 = 9 个坐标,即在一张图中得到了 9 个坐标系。

ax
#Out:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x118bb3470>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x118ba69b0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11ac36e48>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x11ac652b0>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11ac8c6d8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11acb49b0>],
       [<matplotlib.axes._subplots.AxesSubplot object at 0x11acdcc88>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11ad0c0b8>,
        <matplotlib.axes._subplots.AxesSubplot object at 0x11ad333c8>]],
      dtype=object)

变量 ax 其实引用了一个数组对象,其形状是 3 × 3 的,每个元素是一个坐标系对象。于是乎就可以通过类似 ax[1, 2] 的方式得到某一个坐标系对象,然后对该坐标系对象实施有关操作,比如设置属性,或者调用方法,在上一课中有一个绘制脸谱的例子,就是这个道理的具体应用。

作为复习,可以看下面的代码,目的是依次在每个坐标系内标注上行列。

fig, ax = plt.subplots(3, 3, sharex='col', sharey='row')
for i in range(3):
    for j in range(3):
        ax[i, j].text(0.5, 0.5, str((i, j)), fontsize=18, ha='center')

输出结果:

显然,以上功能的实现,就在于 plt.subplots 函数。为了深入理解此函数,可以先浏览它的完整参数。

plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw)

结合之前展示的 Matplotlib 中函数(方法)的参数,会发现不仅参数个数比较多,而且还通过 **fig_kw、*arg 等方式,许可传入更多的参数。这就说明,它们提供了非常灵活的功能。但是,记忆就麻烦了。而实际上,不用刻意记忆,因为通过官方文档或者在 Jupyter 中使用查看帮助文档的智力,能够查看到对所有参数解释说明。

选择几个常用的参数给予说明:

  • nrows 和 ncols,必须是整数,分别设置了行(nrows)和列(ncols)的坐标系分区数量;

  • sharex 和 shapey,布尔值,或者

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值