zoukankan      html  css  js  c++  java
  • 对图像组成不了解?这样学习Matplotlib必走弯路!

    在学习Matplotlib的过程中,大家一定会遇到这样那样的问题,比如说,背景图怎么设置?坐标轴怎么设置?坐标轴上的刻度值怎么设置?怎样在PyQt中添加Matplotlib绘图模块?

    其实想要学好用好Matplotlib是特别简单的,前提就是要必须清楚的了解Matplotlib图像组成。

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

    1. 第一层是底层的容器层,主要包括Canvas、Figure、Axes;
    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内的除了根据数据绘制出的图像以外的内容,主要包括Axes外观(facecolor)、边框线(spines)、坐标轴(axis)、坐标轴名称(axis label)、坐标轴刻度(tick)、坐标轴刻度标签(tick label)、网格线(grid)、图例(legend)、标题(title)等内容。

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

    图像层

    图像层指Axes内通过plot、scatter、hist、contour、bar、barbs等函数根据数据绘制出的图像。

    由此我们可以看出

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

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

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

    想观看Matplotlib教学视频,了解更多Matplotlib实用技巧可关注

    微信公众账号: MatplotlibClass

    今日头条号:Matplotlib小讲堂

  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/kallan/p/7365472.html
Copyright © 2011-2022 走看看