Matplotlib简介——python可视化篇

matplotlib是一个python 2d绘图库,可以在各种平台上以各种硬拷贝格式和交互式环境生成出版质量数据。matplotlib可用于python脚本,python和ipythonshell,jupyter笔记本,web应用程序服务器和四个图形用户界面工具包。
介绍
matplotlib是一个python 2d绘图库,可以在各种平台上以各种硬拷贝格式和交互式环境生成出版质量数据。matplotlib可用于python脚本,python和ipython shell,jupyter笔记本,web应用程序服务器和四个图形用户界面工具包。
可以用几行代码生成绘图,直方图,功率谱,条形图,错误图,散点图等。有关示例,请参阅官方文档示例图和缩略图库。
对于简单的绘图,pyplot模块提供了一个类似于matlab的界面,特别是当与ipython结合使用时。对于高级用户,您可以通过面向对象的界面或matlab用户熟悉的一组函数完全控制线型,字体属性,轴属性等。
历史
注意
以下介绍性文本是由matplotlib的原作者john d. hunter(1968-2012)于2008年撰写的。
matplotlib是一个用python制作数组的2d图的库。虽然它起源于模拟matlab图形命令,但它独立于matlab,可用于pythonic,面向对象的方式。尽管matplotlib主要是用纯python编写的,但是它大量使用numpy和其他扩展代码,即使对于大型数组也能提供良好的性能。
matplotlib的设计理念是:只需几个命令就可以创建简单的图形,或者只有一个!如果要查看数据的直方图,则不需要实例化对象,调用方法,设置属性等; 它应该只是工作。
多年来,我曾经使用matlab专门用于数据分析和可视化。matlab擅长使好看的情节容易。当我开始使用eeg数据时,发现我需要编写应用程序来与我的数据进行交互,并在matlab中开发了一个eeg分析应用程序。随着应用程序越来越复杂,与数据库,http服务器交互,操纵复杂的数据结构,我开始对作为一种编程语言的matlab的限制施加压力,并决定从python重新开始。python不仅仅弥补了matlab作为一种编程语言的所有缺陷,但是我很难找到一个2d绘图软件包(对于3d vtk来说,超过了我所有的需求)。
当我去寻找一个python绘图软件包时,我有几个要求:
情节应该看起来很棒 - 出版质量。对我来说,一个重要的要求是文本看起来不错(antialiased等)
附带tex文档的postscript输出
可嵌入图形用户界面进行应用程序开发
代码应该很容易,我可以理解并扩展它
制作情节应该很容易
没有找到适合我的软件包,我做了任何一个自我尊重的python程序员都会做的事情:卷起袖子跳进来。没有任何计算机图形的实际经验,我决定模仿matlab的绘图功能,因为那是matlab做得很好。这有很多人拥有很多matlab经验的额外优势,因此他们可以快速地在python中进行蒸汽绘图。从开发者的角度来看,拥有一个固定的用户界面(pylab界面)非常有用,因为代码库的内核可以重新设计而不会影响用户代码。
matplotlib代码在概念上分为三个部分: pylab接口是提供的功能集合 matplotlib.pylab,允许用户创建与matlab图形生成代码非常相似的代码(pyplot教程)。该matplotlib前端或matplotlib api是一套做繁重的课程,创建和管理的数字,文字,线条,曲线等(艺术家教程)。这是一个对输出一无所知的抽象接口。的后端是依赖于设备的绘图设备,又名渲染器,即转换前端表示以硬拷贝或显示装置(什么是后端?)。示例后端:ps创建postscript硬拷贝,svg创建scalable vector graphics 硬拷贝,agg使用 matplotlib附带的高质量anti-grain geometry库创建png输出,gtk将matplotlib嵌入到 gtk + 应用程序中,gtkagg使用anti-grain渲染器创建一个图形并将其嵌入到gtk +应用程序中,以此类推pdf,wxwidgets,tkinter等。
matplotlib在许多不同的环境中被许多人使用。有些人希望自动生成postscript文件以发送给打印机或发布者。其他人在web应用程序服务器上部署matplotlib,以生成包含在动态生成的网页中的png输出。一些使用matplotlib交互从windows上的tkinter的python shell。我的主要用途是将matplotlib嵌入在windows,linux和macintosh os x上运行的gtk + eeg应用程序中。