学习matplotlib——架构,容器,基本元素

1.matplotlib 的架构分层

在python中一切皆对象,这个API也是如此。matplotlib是用来对数据绘图的,这里就可以按照对象的思维或者说绘画的步骤来了解该API的架构。绘制的工具需要“纸墨笔砚”和绘制的执笔者。
所以它的架构是这样的:
英文版

  • matplotlib.backend_bases.FigureCanvas
    • matplotlib.backend_bases.Renderer
      • matplotlib.artist.Artist

中文理解

  • 顶层——绘制区——理解为绘画中所需要的的画板以及画板上放的纸
    • 次层——渲染区——理解为绘画中执笔者所需要的工具,如笔,颜料,度量器等
      • 末层——执笔者——理解为绘画中的绘画者,他可以调用绘制过程所需的一切工具

2.无处不在的Artist对象

首先我们得明白这样一个事实:图形中的所有可见元素都是Artist的子类
我们这样想就容易理解了——我们自己就是绘制这幅图的Artist,就是这幅图的执笔者,我们对于自己的画作可随意创作,也可“有意为之”’,比如线条变粗一点,圆形的透明度淡一点,Y轴上的标签放在左侧而不是右侧等等
图形中的所有可见元素,都有一个Artist对象,而这些元素的配置属性,可以通过Artist对象去调节他们的属性。具象一点,在绘画这个场景中,我们作为执笔者在绘画的过程中,是可以自主决定使用或者不使用每一样工具,使用每一样工具的哪一些功能和使用的程度等。所以每个可见元素,都有一个Artist对象也就不奇怪了,两者是使用者和被使用者支配的关系,被使用者支配的东西就是该元素的属性。

每个matplotlib Artist 都有以下属性:

  • alpha 属性:透明度。值为0—1之间的浮点数
  • axes 属性:返回这个Artist所属的axes,可能为None
  • figure 属性:该Artist所属的Figure,可能为None
  • label :一个text label
  • visible :布尔值,控制Artist是否绘制

3.matplotlib中的容器

讲容器container就会涉及到primitives基础元素。可以这样理解容器和基础元素,装元素的东西是容器,容器里面放的东西是基础元素。具象一点,画包里面装的是各种绘画所需的工具,这里的包是容器,工具是基础元素。而容器非单一的,是可嵌套的,包里有笔盒,笔盒里有彩色笔。这里的笔盒又是一个容器,彩色笔是基础元素。

如下图所示,每个单元都是一个容器,由层级图所示,容器中又嵌套着其他容器。除了通过容器找到容器里所包含的元素以外,每个容器自身的属性也是可以调节的。这就好比改变自己背包的款式颜色,而里面装的东西不变。
在这里插入图片描述

3.1 Figure容器

它是最顶级的对象容器,它包含了图表中的所有元素。而该容器本身常见的属性如下:

  • Figure.patch 属性:Figure的背景矩形
  • Figure.axes 属性:一个Axes实例的列表(包括Subplot)
  • Figure.images 属性:一个FigureImages patch列表
  • Figure.lines 属性:一个Line2D实例的列表(很少使用)
  • Figure.legends 属性:一个Figure Legend实例列表(不同于Axes.legends)
  • Figure.texts 属性:一个Figure Text实例列表

3.2 Axes容器

该容器是该API中最核心的地方。Axes 有许多方法用于绘图如.plot()、.text()、.hist()、.imshow() 等方法用于创建大多数常见的 基础元素。该容器本身常见的属性如下:

  • artists : Artist实例列表
  • patch : Axes所在的矩形实例
  • collections : Collection实例
  • images : Axes图像
  • legends : Legend 实例
  • lines : Line2D 实例
  • patches : Patch 实例
  • texts : Text 实例
  • xaxis : matplotlib.axis.XAxis 实例
  • yaxis : matplotlib.axis.YAxis 实例

3.3 Axis容器

Axis 实例处理 tick line 、 grid line 、 tick label 以及 axis label 的绘制,它包括坐标轴上的刻度线、刻度 label 、坐标网格、坐标轴标题等

3.4 Tick容器

该容器是最外层的容器,它 包含了 tick 、 grid line 实例以及对应的 label。该容器本身常见的属性如下:

  • Tick.tick1line :Line2D实例
  • Tick.tick2line :Line2D实例
  • Tick.gridline :Line2D实例
  • Tick.label1 :Text实例
  • Tick.label2 :Text实例

4.基础元素

待写

资料:
1.Datawhale的 数据可视化教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值