*;*;;快速绘图 matplotlib的pyplot子库提供了和matlab类似的绘图API,方便用户快速绘制2D图表。(matplotlib_simple_plot.py) pylab模块 matplotlib还提供了名为pylab的模块,其中包括了许多numpy和pyplot中常用的函数,方便用户快速进行计算和绘图,可以用于IPython中的快速交互式使用。 ; matplotlib中的快速绘图的函数库可以通过如下语句载入:
接下来调用figure创建一个绘图对象,并且使它成为当前的绘图对象。
通过figsize参数可以指定绘图对象的宽度和高度,单位为英寸;dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80。因此本例中所创建的图表窗口的宽度为8*80 = 640像素。; 也可以不创建绘图对象直接调用接下来的plot函数直接绘图,matplotlib会自动创建一个绘图对象。 如果需要同时绘制多幅图表的话,可以是给figure传递一个整数参数指定图标的序号,如果所指定序号的绘图对象已经存在的话,将不创建新的对象,而只是让它成为当前绘图对象。 下面的两行程序通过调用plot函数在当前的绘图对象中进行绘图:;
plot函数的调用方式很灵活,第一句将x,y数组传递给plot之后,用关键字参数指定各种属性:? label : 给所绘制的曲线一个名字,此名字在图示(legend)中显示。只要在字符串前后添加''$''符 号,matplotlib就会使用其内嵌的latex引擎绘制的数学公式。? color : 指定曲线的颜色? linewidth : 指定曲线的宽度第三个参数‘’b--``指定曲线的颜色和线型; 接下来通过一系列函数设置绘图对象的各个属性:
? xlabel / ylabel : 设置X轴/Y轴的文字? title : 设置图表的标题? ylim : 设置Y轴的范围? legend : 显示图示 最后调用plt.show()显示出创建的所有绘图对象。
; ;*; 还可以调用plt.savefig()将当前的Figure对象保存成图像文件,图像格式由图像文件的扩展名决定。下面的程序将当前的图表保存为“test.png”,并且通过dpi参数指定图像的分辨率为 120,因此输出图像的宽度为“8X120 = 960”个像素。
实际上不需要调用show()显示图表,可以直接用savefig()将图表保存成图像文件.使用这种方法可以很容易编写出 批量输出图表的程序.;绘制多轴图 一个绘图对象(figure)可以包含多个轴(axis),在Matplotlib中用轴表示一个绘图区域,可以将其理解为子图。上面的第一个例子中,绘图对象只包括一个轴,因此只显示了一个轴(子图(Axes) )。可以使用subplot函数快速绘制有多个轴的图表。subplot函数的调用形式如下:; subplot将整个绘图区域等分为numRows行和 numCols列个子区域,然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1。如果numRows,numCols和plotNum这三个数都小于10的话,可以把它们缩写为一个整数,例如subplot(323)和subplot(3,2,3)是相同的。subplot在plotNum指定的区域中创建一个轴对象。如果新创建的轴和之前创建的轴重叠的话,之前的轴将被删除。; 下面的程序创建3行2列共6个轴,通过axisbg参数给每个轴设置不同的背景颜色。
如果希望某个轴占据整个行或者列的话,可以如下调用subplot:; 当绘图对象中有多个轴的时候,可以通过工具栏中的Configure Subplots按钮,交互式地调节轴之间的间距和轴与边框之间的距离。如果希望在程序中调节的话,可以调用subplots_adjust函数,它有left, right, bottom, top, wspace, hspace等几个关键字参数,这些参数的值都是0到1之间的小数,它们是以绘图区域的宽高为1进行正规化之后的坐标或者长度。; subplot()返回它所创建的Axes对象,可以将它用变量保存起来,然后用sca()交替让它们成为当前Axes对象,