1 关于 Matplotlib 模块
Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。
Matplotlib 目前包含了37个不同的模块, 如 matlab, mathtext, finance, dates
等等,其中与绘图关系最直接的是 matlab 模块。可以用下面的命令装载并查看它提供的函数
>>> import matplotlib.matlab>>> dir(matplotlib.matlab)
如果要了解模块中某个函数的使用方法,可以使用 help 命令。如下面的命令
>>> help(legend)>>> help(plot)
会返回 legend 和 plot 这两个函数的信息。
本文拟通过一些实例来说明 matplotlib 的这些主要特点。相信通过阅读这些例子,您能对 Matplotlib 的使用有一个基本的了解。
2 绘制一组幂函数
先从一个简单的例子开始讨论。假设要在一个图形中显示一组幂函数。这组幂函数的基不同,分别为10,自然对数 e 和2。可以用如下 Python 脚本去描绘这组曲线,生成的图形如图1所示。
from matplotlib.matlab import * x = linspace(-4, 4, 200) f1 = power(10, x) f2 = power(e, x) f3 = power(2, x) plot(x, f1, 'r', x, f2, 'b', x, f3, 'g', linewidth=2) axis([-4, 4, -0.5, 8]) text(1, 7.5, r'$10^x$', fontsize=16) text(2.2, 7.5, r'$e^x$', fontsize=16) text(3.2, 7.5, r'$2^x$', fonsize=16) title('A simple example', fontsize=16) savefig('power.png', dpi=75) show()
图1: 一组幂函数
程序的第一行装载了 matlab 模块。接下来的几行语句(至 savefig 之前)好像是在运行 Matlab 程序,因为 linspace, power, plot,axis, text, title 这些函数在 Matlab 中也存在。这个例子展示了 Matplotlib 中几个比较常用的绘图函数,如 plot,axis,title 等的用法。其中 plot 是一个功能十分强大的函数, 通过改变它的参数选项,可以灵活地修改图形的各种属性,比如选用的线型,颜色,宽度等。
新闻热点
疑难解答