python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python matplotlib底层原理

Python matplotlib底层原理解析

作者:盆友圈的小可爱

这篇文章主要介绍了Python matplotlib底层原理,下面文章围绕Python matplotlib底层原理的相关资料展开详细内容,具有一定的参考价值,需要的朋友可以参考下

复习回顾:
前期,我们已经学习了matplotlib模块相关的基础知识,对 matplotlib 模块折线图、饼图、柱状图进行操作。

我们都知道matplotlib 是偏向底层用于可视化数据处理的库,我们在绘制图表的时候主要步骤主要有四大步骤:

matplotlib官网上,可以看到丰富多样的图表教程

 

以上是我们上一期学习的内容,对于matplotlib模块来说它的底层是怎么工作的?

俗话说,学习要做到知其然,也要知其所以然,这样才能更好使用matplotlib模块相关方法。

1. matplotlib 框架组成

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

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

PS:matplotlib框架说明

2. 脚本层(scripting)

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

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

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

pyplot 模块提调用matplotlib的方法

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

from matplotlib import pyplot

import pandas

pyplot.rcParams["font.sans-serif"]=['SimHei']
pyplot.rcParams["axes.unicode_minus"]=False

pyplot.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()

3. 美工层(artist)

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

artist 层特点

matplotlib 图表对象

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

matplotlib 图表对象说明

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

Artist 对象说明

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

Figure

Axes

Axis

Artist对象层级结构图如下

4. 后端层(backend)

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

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

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

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

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

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

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

总结:

本文对matplotlib模块底层实现进行深入地认识和学习。在matplotlib模块中底层是基于C++模板库Agg来渲染图片效果的,同时提高脚本层pyplot让非专业的人也能轻松处理数据展示数据。

到此这篇关于Python matplotlib底层原理解析的文章就介绍到这了,更多相关Python matplotlib底层原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文