iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python matplotlib底层原理是什么
  • 451
分享到

Python matplotlib底层原理是什么

2023-06-21 22:06:47 451人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“python matplotlib底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. matplot

本篇内容介绍了“python matplotlib底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. matplotlib 框架组成

matplotlib 模块在众多数据可视化库中可以可以实现复杂的底层操作。像gglotseabornplotnline 底层都是基于matplotlib 模块去封装不同风格的统计图表。

matplotlib 模块底层主要是由三部分组成脚本层、美工层和后端层。

  • 脚本层:为用户提供可视化编程的接口

  • 美工层:有大量绘制图表方法的接口

  • 后端:连接硬件,处理图像元素的接口

Python matplotlib底层原理是什么

PS:matplotlib框架说明

2. 脚本层(scripting)

脚本层属于matplotlib模块中最上层,主要为用户提供可视化编程的接口,代表pyplot模块。

对于普通用户,pyplot接口可以满足大多数文本的图像和坐标的生成,传给后端进行处理。

matplotlib.pyplot接口导入时,通常是import matplotlib.pyplot as plt

  • 导入pyplot 模块并重名为plt

  • pyplot 模块加载时,会对本地的配置文件进行分析

  • 同时会声明默认的后端,例如声明创建Figure对象

  • 将脚本深拷贝给后端后退出

pyplot 模块提调用matplotlib的方法

  • 供给用面向oo调用风格,显示创建图形和轴调用其方法

  • 依靠pyplot 自动创建和管理图形和轴,并使用pyplot函数进行绘图

用户只需调用pyplot模块相关的方法,就可以绘制漂亮的图表啦

from matplotlib import pyplotimport pandaspyplot.rcParams["font.sans-serif"]=['SimHei']pyplot.rcParams["axes.unicode_minus"]=Falsepyplot.bar([1,2,3,4,5,6],[45,20,19,56,35,69])pyplot.title("data analyze")pyplot.xlabel("元素 a")pyplot.ylabel("元素 b")pyplot.show()

Python matplotlib底层原理是什么

3. 美工层(artist)

在美工层位于matplotlib中间层,主要进行数据相关的绘制工作,绘制图表中的标题、直线、刻度等都是artist对象的实例。

artist 层特点

  • 脚本层创建的Figure对象是Artist对象实例

  • Artist的基类是matplotlib.artist.Artist,共享所有Artist属性包括从美工系统到画布坐标系统变化等

  • 提供处理用户交互动作的接口

matplotlib 图表对象

我们可以通过如下matplotlibe图表中可以看到一张图表由多个对象组合而成的。

Python matplotlib底层原理是什么

matplotlib 图表对象说明

对象说明
Figure图形,弹出框口即是figure
axes子图
title标题
legend图例
Major tick大标尺刻度
Minor tick小标尺刻度
Line线型图
axis label坐标指标说明
Marker数据标准说明

Artist 对象说明

ArtIst 对象包含FigureAxesAxis对象,是它们的基类,其Artist对象都全部位于后端提供的canvas画布上。

Figure

  • 一个图表窗口即是一个figure对象

  • figure对象中至少要包含一个Axes对象子图

  • figure对象中可以包含title、label等Artist对象

  • figure对象中包含的不可见对象canvas。绘制图像时会进行调用

Axes

  • axes 是子图对象,子图对象指的是x和y轴.

  • axes 常用有set_xlabel()、set_ylabel()设置x和y轴坐标名字

Axis

  • axis 是代表数据轴的对象,主要用于表示刻度位置和显示数值

  • axis 包含用于控制刻度位置的Locator和显示刻度FORMatter两个子对象

Artist对象层级结构图如下

Python matplotlib底层原理是什么

4. 后端层(backend)

后端层主要是matplotlib 模块底层实现,主要实现了三方面的抽象接口 4.

FigureCanvas:对Artist对象绘制提供画布功能进行封装

matplotlib 模块底层是基于硬的用户画面,FigureCaves接口主要完成前期初始化工作

  • 将自身嵌入到原生的Qt视觉窗口(QtGui.QMainWindow)

  • 将matplotlib的绘制命令Render转换到canvas上(QtGui.QPainter)

  • 将原生Qt事件转成matplotlib的Event接口,Event接口接收到信息后进行处理

Renderer: 相当于画笔,执行绘制动作

Render 主要提供硬件底层的绘图接口,能对Artist绘制命令进行执行。

  • Render 接口最初源于GDK的Drawable接口,后来转换成独立后端的原生绘图命令。

  • matplotlib 是支持c++模块库基于像素点核心渲染器agg

  • 可以进行2d反锯齿渲染、PNG图片生成

Event: 处理用户键盘和鼠标输入事件

Event 框架是将key-press-event或者mouse-motion-event等UI事件映射到键盘或者鼠标事件类中。

  • 用户可以连接事件,使用函数进行回调

  • 图形与数据交互

Python matplotlib底层原理是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Python matplotlib底层原理是什么

本文链接: https://www.lsjlt.com/news/300982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python matplotlib底层原理是什么
    本篇内容介绍了“Python matplotlib底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. matplot...
    99+
    2023-06-21
  • Python matplotlib底层原理解析
    目录1. matplotlib 框架组成2. 脚本层(scripting)3. 美工层(artist)4. 后端层(backend) 复习回顾: 前期,我们已经学习了matplotl...
    99+
    2022-11-12
  • python GIL锁的底层原理是什么
    本篇内容介绍了“python GIL锁的底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!释放GIL锁原理分析在单核CPU下,这种...
    99+
    2023-06-30
  • Spring底层原理是什么
    这篇文章主要讲解了“Spring底层原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring底层原理是什么”吧!Spring简介ClassPathXmlApplicationCo...
    99+
    2023-07-05
  • HashMap底层原理是什么
    本篇内容介绍了“HashMap底层原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HashMap存...
    99+
    2022-10-19
  • InnoDB底层原理是什么
    这篇文章主要为大家展示了“InnoDB底层原理是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“InnoDB底层原理是什么”这篇文章吧。InnoDB,是MySQL的数据库引擎之一,现为MySQ...
    99+
    2023-06-27
  • python 中GIL锁的底层原理是什么
    这篇文章将为大家详细讲解有关python 中GIL锁的底层原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py...
    99+
    2023-06-14
  • HashMap的底层原理是什么
    这篇文章将为大家详细讲解有关HashMap的底层原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一:HashMap的节点:HashMap是一个集合,键值对的集合,源码中每个节点用No...
    99+
    2023-06-04
  • redis锁底层原理是什么
    Redis的锁底层原理是基于Redis的单线程特性和原子操作来实现的。当一个客户端尝试获取锁时,它会向Redis发送一个SETNX命...
    99+
    2023-09-06
    redis
  • redis的底层原理是什么
    这篇文章主要介绍“redis的底层原理是什么”,在日常操作中,相信很多人在redis的底层原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis的底层原理是什么”...
    99+
    2022-10-19
  • Docker的底层原理是什么
    Docker的底层原理是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Docker 能实现这些功能,依赖于 chroot、namespac...
    99+
    2022-10-19
  • Vue的底层原理是什么
    这篇文章主要介绍Vue的底层原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Observer (数据劫持)核心是通过Obeject.defineProperty()来监听数据的变动,这个函数内部可以定义set...
    99+
    2023-06-29
  • Java NIO底层原理是什么
    这篇文章主要介绍“Java NIO底层原理是什么”,在日常操作中,相信很多人在Java NIO底层原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java NIO底层原理是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-16
  • PHP底层工作原理是什么
    这篇文章将为大家详细讲解有关PHP底层工作原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。PHP底层工作原理图1 php结构从图上可以看出,php从下到上是一个4层体系①Zend引擎Zend整体用...
    99+
    2023-06-17
  • mongodb底层存储原理是什么
    MongoDB的底层存储原理是使用一种称为B树(B-Tree)的数据结构来存储数据。B树是一种平衡的多路搜索树,它通过将数据按照顺序...
    99+
    2023-09-06
    mongodb
  • Spring Boot的底层原理是什么
    这篇文章主要讲解了“Spring Boot的底层原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring Boot的底层原理是什么”吧!1.基于你对springboot的理解描述...
    99+
    2023-06-27
  • AsyncGetCallTrace源码底层原理是什么
    这篇文章主要讲解了“AsyncGetCallTrace源码底层原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“AsyncGetCallTrace源码底层原理是什么”吧!前言Async...
    99+
    2023-06-29
  • docker运行的底层原理是什么
    这篇文章将为大家详细讲解有关docker运行的底层原理是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。     docker是一个client-server结构的系统,d...
    99+
    2023-06-04
  • java中CAS的底层原理是什么
    今天就跟大家聊聊有关java中CAS的底层原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基...
    99+
    2023-06-14
  • chatgpt底层实现的原理是什么
    chatgpt底层实现的原理是通过人工的标注方式来训练出一种强化学习的冷启动模型和reward反馈模型,然后再通过强化学习的模式来学...
    99+
    2023-02-09
    chatgpt
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作