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小讲堂

  • 相关阅读:
    使用 mesh 实现多边形裁剪图片!Cocos Creator!
    如何实现高抛平抛发射?从抛物线说起!Cocos Creator!
    用 shader effect 实现雨滴落水效果!Cocos Creator 3D !
    反复横跳的瞄准线!从向量计算说起!基于射线检测的实现!Cocos Creator!
    爬取网易云音乐评论!python 爬虫入门实战(六)selenium 入门!
    浅析射线检测 raycast 的使用 !Cocos Creator 3D !
    用 python 分析基金!让赚钱赢在起跑线!
    cocos creator 3D | 拇指投篮 | 3D项目入门实战
    GA/T 1545-2019 信息安全技术 智能密码钥匙安全技术要求
    GA/T 1539-2018 信息安全技术 网络病毒监控系统安全技术要求和测试评价方法
  • 原文地址:https://www.cnblogs.com/kallan/p/7365472.html
Copyright © 2011-2022 走看看