当前位置:文档之家› Python科学计算与数据处理—绘制精美的图表.doc

Python科学计算与数据处理—绘制精美的图表.doc

Python科学计算与数据处理—绘制精美的图表 Matplotlib是python中最著名的绘图库。matlab提供了一套类似于MATLAB的命令API,非常适合交互式绘图。 而且可以作为绘图控件方便地嵌入到图形用户界面应用程序中。 它的文档非常完整,在图库页面中有数百个缩略图。打开后,有源程序。 因此,如果你需要画一个特定类型的地图,你基本上可以通过浏览、复制和粘贴来完成。 显示页面地址:快速绘图快速绘图matlab plot库的pyplot子库提供了一个类似MATLAB的绘图API,方便用户快速绘制三维图表。 (matplotlibsimpleplotpy)pylab模块matplotlib还提供了一个名为pylab的模块,该模块包含了numpy和pyplot中常用的许多功能,以方便用户快速计算和绘制,并可用于IPython中的快速交互使用。 快速绘图库中的快速绘图函数库可以通过以下语句加载:下一步调用图形创建一个绘图对象并使其成为当前绘图对象。 figsize参数允许您指定绘图对象的宽度和高度单位。英寸dpi参数指定绘图对象的分辨率,即每英寸多少像素。默认值为。 因此,本例中创建的图表窗口的宽度为* =像素。 IMPORTMATplotLIBPYPLOTASPTLTPLTFIGURE(Figure Size =(,))也可以在不创建绘图对象的情况下进行快速绘图。直接调用下面的PLOT函数直接绘制一个绘图matplotlib将自动创建一个绘图对象。 如果需要同时绘制多个图表,可以通过传递一个整数参数来指定图形图标的序列号。如果具有指定序列号的图形对象已经存在,它不会创建新对象,而只会使其成为当前图形对象。 以下两行程序通过调用绘图函数在当前绘图对象中绘制:绘图绘图绘图(x,y,label = $ sin (x) $,color = red,linewidth =)绘图绘图绘图(x,z,b,label = $ cos (x) $)调用绘图函数的方法很灵活。在第一句传递x,y数组进行绘图后,使用关键参数指定各种属性:bulllabel:为绘制的曲线命名。这个名字显示在图例中。 只要在字符串前后添加# # $ # # #符号matplotlib,就将使用其嵌入式latex引擎绘制的数学公式。 Bullcolor:指定曲线的颜色bulllinewidth:指定曲线的宽度第三个参数lsquorsquob ``指定曲线的颜色和线型Pltlot (x,y,label = $ sin (x) $,color = red,lineWidth =) Pltlot (x,z,b,Label = $ cos (x) $)快速绘制下一步, 绘图对象的各种属性是通过一系列函数来设置的:bull label:设置X轴和Y轴的文本bulltitle:设置图表的标题bullylim:设置Y轴的范围bulllegend:显示图表最后,调用pltshow()来显示所有创建的绘图对象。 PLT Label(time(s))PLT Label(volt)PLT title(pyplot first example)PLT lim(,)pltllegend()quick drawing importnumppyanpmportationplotlibpyplotaspltx = NPL space(,)y = npsin(x)z = npcos(x * *)PLT fig size =(,))pltplot(x,y,label=$sin(x)$,color=red,line width =)PLT PLT plot(x,z,b,Label = $ cos (x)图像格式由图像文件的扩展名决定。 以下程序将当前图表保存为testpng,并通过dpi参数指定图像的分辨率,以便输出图像的宽度为X=像素。 事实上,您不需要调用show()来显示图表。您可以使用保存图()将图表直接保存为图像文件。使用这种方法,您可以很容易地编写程序RunmatPlolibSimplePlotsAthaveFig(TestPng,DPI =)来快速绘制多轴图。一个绘图对象(图形)可以包含多个轴。在MatPlotLib中,您可以使用轴来表示绘图区域,这可以理解为子图。 在上面的第一个示例中,绘图对象仅包括一个轴,因此仅显示一个轴(轴)。 您可以使用子图功能快速绘制多轴图表。 子图函数的调用形式如下:子图(numRows,numCols,Plotnum)快速绘图子图将整个绘图区域分成Numrows行和Numcols子区域列,然后从左到右从上到下对每个子区域进行编号。左上角子区域的编号是。 如果三个数字numRowsnumCols和plotNum小于,它们可以缩写为整数,例如子图()和子图(,,)是相同的。 子图在由plotNum指定的区域中创建轴对象。 如果新创建的轴与先前创建的轴重叠,则先前的轴将被删除。 以下快速绘制过程创建总共有轴的行和列。通过axisbg参数为每个轴设置不同的背景颜色。 如果希望轴占据整个行或列,可以调用子图形:对于IDX,ColorineNumerate (RGBYCK): PLT子图形(IDX,Axisbg = color)pltshow()pltsubplot()#第一行左pltsubplot()#第一行右pltsubplot()#第二个全行plts how()快速绘图当绘图对象中有多个轴时,可以通过工具栏中的“配置子图形”按钮交互式调整轴间距以及轴与边框之间的距离。 如果你想在程序中进行调整,你可以调用subplotsadjust函数,它有几个关键参数,如左、右、下、上、下空间、空间等等。这些参数的值是介于之间的小数,它们是由绘图区域的宽度和高度标准化的坐标或长度。 快速绘制子图()返回它创建的轴对象。您可以用变量保存它,然后用sca()替换它们,使其成为当前的Axes对象,并调用plot()在其中绘制。 如果需要同时绘制多个图表,可以向Figure()传递一个整数参数,以指定Figure对象的序列号。如果序列号指定的图形对象已经存在,则不会创建新对象,而只会创建当前图形对象。 以下过程演示了如何依次在不同图形的不同子图形中绘制曲线。 (matplotlibmultifigurepy)快速绘图首先,通过图(),创建了两个分别具有和序列号的图表。 然后,在图中并排创建两个子图,并用变量ax和ax保存。 ImportNumPyasnImportMatchPlatLibPyPlotaspltPlotFigure()#创建图表图形()#创建图表AX =绘图子图形()#创建子图形AX =绘图子图形()#创建子图形X =图形空间(,),在图表中快速绘制调用循环中的图形()以使图表成为当前图表并在其中绘制。 然后调用sca(ax)和sca(ax)分别将子图ax和ax作为当前子图并绘制在其中。 当它们成为当前子图时,包含它们的图将自动成为当前图,因此不需要调用figure()来依次在图和图的两个子图之间切换,并逐渐为iinxrange()添加新曲线:pltfigure()#选择图pltplot(x,npexp (I * x)) pltsca (ax) #选择图的子图pltplot (x)。Nspin (i * x)) pltsca (ax) #选择图表的子图pltlot (x,npcos (i * x)) pltltshow()快速绘图轴设置轴容器包括轴刻度线、刻度线标签、坐标网格和轴标题等。 该标度包括分别由getmajorticks()和getminorticks()方法获得的主标度和子标度。 每个刻度线都是包含实际刻度线和刻度标签的XTick或YTick对象。 为了便于访问刻度线和文本轴对象,提供了getticklabels()和getticklines()方法来直接获取刻度线和刻度线。 下面的示例绘制并获取当前子图的X轴对象轴:PLT PLOT(,,,)PLT SHOW () AXIS = PLT GCA () XAXIS快速绘制以获取轴对象的刻度位置列表:下面是axis对象的刻度标签和标签中的文本:axisgetticklocs()数组(,,,,)axisgetticklabels()#获取刻度标签列表alistoftextmajorticklabelobjectsxgettext()forxinasgetticklabels()#获取文本字符串u##,u##。可以看出,在X轴上总共有个刻度线。由于没有次要刻度线,次要刻度线列表的长度为:X轴上刻度线的配置可以通过使用pyplot模块中的xticks()来完成:axis getticklines()Alistalflinedditrinesobjectsaxisetcklines(minor = true)#获取次要刻度线列表alistafflinedditrinesobjectspltxticks(font size =,color = red,rotation =)在上面的示例中,次要刻度线列表为空,因为用于计算次要刻度线位置的对象默认为定位器 计算主标尺位置的对象是自动定位仪,它根据当前配置(如缩放)自动计算标尺的位置。matplotlib提供了各种定位器类来配置刻度线的位置,还提供了格式化程序类来控制刻度标签的显示。 以下程序将X轴的主刻度设置为圆周率,副刻度设置为圆周率,主刻度上的标签用数学符号显示圆周率。 (matplotlibaxistextpy自定义坐标轴的比例和文本)与快速绘图和比例定位以及文本格式相关的类在matplotlibticker模块中定义,程序从该模块中加载两个类:MultipleLocationon。在快速绘图程序中,与比例值相对应的比例文本是通过piformatter()(复杂)defpiformatter (x,pos)计算出来的= andm = =: m,n = m,nifm = =:return IFF = = and n = =:return $ pi $ IFN = =:return NR $ dpi $ mifm = =:return NR $ frac { pi } { d } $ nreturnr $ frac { dpi } { d } $(m,n)快速绘图X = NPL空间(,*nppi,,

相关主题