matplotlib介绍

—–因为在做记录时需要用到Python的画图功能,这里做一个学习记录!为了从根源了解matplotlib,直接从官网入手!

本文是一篇译文,翻译matplotlib官网上的对于matplotlib介绍,地址为:http://matplotlib.org/users/intro.html

正文:

matplotlib是一个在Python下的2d绘图库,尽管它的起源是仿MATLAB的图形命令,但是与MATLAB不相关,并且是以对象对象方式,运行于Python环境下。尽管mapplotlib主要都是用纯Python写的,但是为了在运行时有更高的性能,特别是在显示大量数组数据的情况下,里面也大量使用了NumPy和其他的扩展代码

mapplotlib的设计哲学是:你可以仅仅只用一丢丢甚至一行命令行来创建一个简单的平面图!假如你想看你数据表示的柱状图,你也不需要进行如下繁杂的步骤:初始化对象,调用方法,设置属性等等

有几年时间,我(作者)只用MATLAB来进行数据分析与形象化。MATLAB擅长非常简单的制作出一个精美的平面图。当我处理脑电数据时,我发觉我需要写一个应用来与(interact with)数据交互,所以我就用MATLAB编写了一个脑电数据的应用,因为应用的复杂度不断上升,需要与数据库,http服务器交互,处理复杂的数据结构,我开始对于MATLAB作为一种编程语言它的局限性愈发抗拒,并决定用Python重新编写改应用。Python大大弥补了MATLAB作为编程语言的缺陷(deficiencies),但是我又发现,我找不到一个合适的2D绘图包(3D绘图的VTK包又太超过我的需要了,我并不需要这么复杂的)

当我在查找Python的绘图包时:我有以下几个要求:

  • 图形显示能达到高质量出版水平,对我来说一个重要的需求就是文本显示漂亮
  • Postscript输出支持Tex排版
  • 对应用开发人员有内嵌的图像化用户接口
  • 源代码能通俗易懂,好扩展
  • 创建图像的步骤简单

    刚刚好,我没有找到适合我的包,所以我做了任何有自我尊严的Python编程人员将会做的:撸起袖子自己干!由于我没有任何电脑绘图的经验,所以我决定模仿MATLAB出绘图功能,怎么说,MATLAB在某些方面还是做的相当好的。而且还有一个附加优势就是很多人都有很多MATLAB编程经验,因此到时候他们能在Python环境下快速地建立一个Strean plotting。从一个开发者的角度看,有一套固定的用户接口将非常有用,这样的话能在不影响用户代码的情况下重新设计我的代码库。

Mapplotlib代码从概念上(conceptually )说分为3个部分:pylab接口(pylab interface)提供了一系列函数,使得用户只需用类似于MATLAB图形生成代码就能创建一个平面图(plots),
Matplotlib frontend(前端) 或者 Matplotlib API是一系列类,他们用来创建管理图形,文本,线,点等等。这是一个抽象接口,不管输出内容。 backends(后端)是一个设备相关的绘图装置,即渲染器,转换前端要表示的内容到打印稿(hardcopy)或者显示设备上。举一些后端例子:PS生成PostScript 打印稿,SVG生成 Scalable Vector Graphics(可伸缩矢量图形)打印稿,agg用附带了mapplotlib的高质量的Anti-Grain Geometry库的生成PNG 打印稿,GTK内嵌mapplotlib在它的GTK+应用里,GTKAgg 用Anti-Grain渲染器生成一个图形(figure)并内嵌(embed)在GTK+应用里,还有PDF,WxWidgets,Tkinter等等

mapplotlib现在被大量人员使用在不同的环境下,一些人想自动生成PostScript文件发送给打印机或者出版社。一些人在web应用服务器上部署mapplotlib来生成包含了动态生成(dynamically-genetated)的web网页的PNG输出。一些人在windows操作系统,在Tkinter的Python Shell用mapplotlib交互。我(作者)主要是在 一个 Gtk+ EEG application中内嵌mapplotlib,运行于Windows, Linux 和 Macintosh OS X操作系统上

你可能感兴趣的:(Python,python,mapplotlib)