当前位置: 首页>编程语言>正文

python的matplotlib图形之间的遮挡问题 matplotlib 图层

背景图怎么设置?坐标轴怎么设置?坐标轴上的刻度值怎么设置?怎样在PyQt中添加Matplotlib绘图模块?等等

通常情况下,我们可以将一副Matplotlib图像分成三层结构:

  1. 第一层是底层的容器层,主要包括Canvas(画板)、Figure(画布、图片)、Axes(图表); 一个axes代表一个图表,包含一个plot,一个figure代表一张画布绘制一张图片,一张图片或一张画布可以有多个图表;canvas画板,摆放画布的工具。关系:画板--->画布或图片-->线条、饼图等图片
  2. 第二层是辅助显示层,主要包括Axis坐标轴、Spines、Tick、Grid、Legend、Title等,该层可通过set_axis_off()或set_frame_on(False)等方法设置不显示;
  3. 第三层为图像层,即通过plot、contour、scatter等方法绘制的图像。

容器层:

容器层主要由Canvas、Figure、Axes组成。

Canvas是位于最底层的系统层,在绘图的过程中充当画板的角色,即放置画布的工具。通常情况下,我们并不需要对Canvas特别的声明,但是当我需要在其他模块如PyQt中调用Matplotlib模块绘图时,就需要首先声明Canvas,这就相当于我们在自家画室画画不用强调要用画板,出去写生时要特意带一块画板。

Figure是Canvas上方的第一层,也是需要用户来操作的应用层的第一层,在绘图的过程中充当画布的角色。当我们对Figure大小、背景色彩等进行设置的时候,就相当于是选择画布大小、材质的过程。因此,每当我们绘图的时候,写的第一行就是创建Figure的代码

Axes是应用层的第二层,在绘图的过程中相当于画布上的绘图区的角色。一个Figure对象可以包含多个Axes对象,每个Axes都是一个独立的坐标系,绘图过程中的所有图像都是基于坐标系绘制的。

辅助显示层:

辅助显示层为Axes内的除了根据数据绘制出的图像以外的内容,主要包括外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。

该层的设置可使图像显示更加直观更加容易被用户理解,但又并不会对图像产生实质的影响。

图像层

图像层指Axes内通过plot折线图、scatter散点图、hist柱状图、contour轮廓图、bar柱状图、barbs、pie饼图等函数根据数据绘制出的图像。

由此我们可以看出

  • Canvas位于最底层,用户一般接触不到
  • Figure建立在Canvas之上
  • Axes建立在Figure之上
  • 坐标轴、图例等辅助信息层以及图像层都是建立在Axes之上

此外,对于辅助信息层和图像层所包含的内容

  • 线型的对象均是继承于Line2D的子类
  • 文字型的对象均是继承于Text的子类
  • 相关设置均可参考父类的设置方法

https://www.xamrdz.com/lan/5wp1963905.html

相关文章: