Matplotlib是由John D. Hunter 编写的一款强大的Python数据可视化绘图库。
Matplotlib代码主要由三个部分组成:用户接口(matplotlib.pylab)。
该部分是一个函数集,函数集内的函数与用法与MATLAB的函数用法非常类似,所绘制的图像也极为相似,所以学习过MATLAB的用户可以很快上手Matplotlib。
Matplotlib前端(Matplotlib API)。
该部分是用户在使用过程中需要面对处理的部分,如绘图过程中的窗体、文本、线、图像等的创建和管理都是由该部分实现的。
Matplotlib后端(Matplotlib backends)。
该部分用于将用户绘制的图像展现出来。
通常我们画的图都是用Python shell直接显示出来的,但是不同的用户有不同的展示需求,如有的用户需要将图像嵌套在自己的应用程序中,有的用户需要将图像动态的展示在网站上,而研究生则需要输出矢量图用于论文创作。
针对不同的需求进行展示,并不需要用户来做大量的操作,而后端却在幕后做了大量的工作。
Matplotlib是如何诞生的?
Matplotlib的作者John D. Hunter曾经使用MATLAB做数据分析和可视化多年。但是当他开始处理EEG(脑电图)数据时,他需要写一个与数据进行交互的应用程序,所以他用MATLAB开发了一个脑电图分析的应用。
随着需求的增加,这个应用程序的复杂性越来越高,数据库交互问题、http服务器问题、复杂的数据结构的操作问题越来越突出,John D. Hunter开始意识到MATLAB作为一门编程语言的局限性,所以他决定使用Python重新开始。 虽然Python弥补了所有的MATLAB中的不足,但是当时却没有一款符合他心意的绘图工具。
John D. Hunter对这个绘图工具有几个要求:绘制的图像必须是可用作打印出版的高质量图像,文字显示不能有锯齿。
支持PostScript语言,可将图像保存为包含Tex排版的eps格式矢量图
可嵌入在图形用户界面中开发应用程序
代码简单易读,可以轻松的理解与扩展
绘图简便
在寻找了一通没有结果以后,John D. Hunter决定挽起袖子自己写,于是他自己用Python写一个拓展库——Matplotlib。由于没有任何计算机图形设计的实际经验, 所以John D. Hunter决定效仿他一直使用的绘图方面确实做的非常优秀的MATLAB。这样一来Matplotlib就更容易被熟悉了MATLAB的用户接受了。
相比于MATLAB,Matplotlib有什么优点?
虽然Matplotlib源于模仿MATLAB,但是它却不同于MATLAB,与MATLAB相比它的优势在于:免费。MATLAB是一款商业软件,价格不菲;而Matplotlib是开源免费的。
Matplotlib是Python的拓展库,所以继承了Python语法的优点,面向对象、易读、易维护、代码简洁优美。
Matplotlib依托于Python,可借助Python的强大丰富的拓展模块嵌入在图形用户界面应用程序中,也可嵌入在网页中。
实例分享