matplotlib简介

matplotlib-1.1.1 文档翻译之简介

Created Wednesday 28 November 2012

matplotlib 是一个用python[1]写的2维数组绘图库。尽管它起初是在模仿MATLAB[2]图形命令,但是它使用python风格[pythonic]和面向对象的方式,不受MATLAB的限制,两者是相互独立的。虽然matplotlib是使用纯python编写的,但是为处理大数据提供很好的性能而大量使用了NumPy[3]和其他扩展代码。


matplotlib 设计哲学:简单就是美!仅仅几个或者一个命令就可以绘制出简单的图。假如你想看数据的直方图,你也不必初始化对象或者调用方法或者设置属性等等那些那么麻烦的操作,它就会生成你想要的。


我以前只使用MATLAB来分析数据和可视化数据很多年。MATLAB擅长快速生成漂亮的图。当我开始处理EEG数据时,我发现需要用MATLAB编写可以和我的数据和显像以及EEG分析交互的应用程序。随着需要和数据库[databases]和http服务器以及操作复杂的数据结构打交道时,程序变得复杂了, 我开始对MATLAB编程语言的缺陷感到疲惫了,决定重新开始使用python.因为Python编程语言正好弥补了MATLAB的不足,不过,找2维绘图包(因为3维超出了我的需求了)却是十分困难。


当我搜索python绘图包时,需要满足几个要求:
· 图看起来不错-达到出版物的质量。一个对我很基本的要求就是文字看起来很好(抗锯齿等)
· postscript格式的输出内包含TeX格式的文档
· 能够为应用开发提供嵌入式的图形用户接口
· 代码应该足够简单以至于是我能够理解和扩展
· 绘图很容易


没有找到任何包可以满足我,我做了任何一个有自尊心的python编程人员应该做的:卷起衣袖然后投入这件事中。因为没有任何有关计算机图形学的实战经验,我决定模仿MATLAB的绘图因为它这方面确实表现的很好。在这方面,对那些有MATLAB经验的人增添了优势,所以他们可以使用Python快速上手。从开发人员角度来看,修复用户接口(pylab接口)变得十分有用,因为这些基础代码可以被重新设计而不会影响到其他代码。


matplotlib代码被概念行的分成了3部分:
1. pylab接口(interface),由matplotlib.pylab提供的一系列函数,方便用户使用和MATLAB绘图代码十分相近的代码(Pyplot手册)。
2. matplotlib前端(frontend)或者matplotlib应用程序接口(API):由一些列的类来处理重量级的处理:如创建和管理图形窗口,文本,线条和图等等(Artist手册)。这是不管输出的抽象接口
3. matplotlib后端[backend],是设备独立的绘图设备,众所周知的渲染器,它把前端展示翻译成硬拷贝(hardcopy)或者显示设备(什么是后端?)。后端示例:PS创建PostScript硬拷贝,SVG创建矢量图硬拷贝,Agg创建使用matplotlib带的高质量Anti-Grain Geometry的PNG输出,GTK嵌入到matplotlib的Gtk+应用中了,GTKAgg使用Anti-Grain渲染器来创建图形窗口和嵌入到Gtk+应用中,像PDF, WxWidgets, Tkinter等。


matplotlib被很多人用于不同的环境,一些人想自动生产PostScript文件送往打印机或者出版社,其他人发布matplotlib到web应用中在页面中动态生成PNG格式输出。有些人在windows系统上和python shell交互。而我主要用来嵌入到Gtk+ EEG应用中在windows,linux和Macintosh OS X系统上运行。


1. python:一种脚本语言,我最喜欢的语言之一,见http://www.python.org
2. MATLAB: 美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。[百度百科]
3. NumPy:  一个用python实现的科学计算包,用C/C++和Fortran写成,主要提供数组类型以及操作等

你可能感兴趣的:(文档,matplotlib)