1.3 绘图命令
绘图命令是学习MATLAB作图最重要的部分,本节将会详细介绍一些常用的控制参数。
plot命令是最基本的绘图命令,也是最常用的一个绘图命令。当执行plot命令时,系统会自动创建一个新的图形窗口。若之前已经有图形窗口打开,那么系统会将图形画在最近打开过的图形窗口上,原有图形将被覆盖。
plot命令主要有下面几种使用格式。
1.plot(x)
plot(x)函数格式的功能如下。
◆当x是实向量时,绘制出以该向量元素的下标(即向量的长度,可用MATLAB函数length()求得)为横坐标,以该向量元素的值为纵坐标的一条连续曲线。
◆当x是实矩阵时,按列绘制出每列元素值的曲线,曲线数等于x的列数。
◆当x是负数矩阵时,按列分别绘制出以元素实部为横坐标,以元素虚部为纵坐标的多条曲线。
◆当x是复数时,绘制x的虚部对x的实部的图,使得plot(x)等效于plot(real(x),
imag(x))。
例1-11:绘制向量的图像。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-5所示。
例1-12:绘制矩阵的图像。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-6所示。
图1-5 绘制向量
图1-6 绘制矩阵
2.plot(x,y)
plot(x,y)函数格式的功能如下。
◆当x、y是同维向量时,绘制以x为横坐标、以y为纵坐标的曲线。
◆当x是向量,y是有一维与x等维的矩阵时,绘制出多条不同颜色的曲线,曲线数等于y阵的另一维数,x作为这些曲线的横坐标。
◆当x是矩阵,y是向量时,同上,但以y为横坐标。
◆当x、y是同维矩阵时,以x对应的列元素为横坐标,以y对应的列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数。
例1-13:在某次物理实验中,测得不同摩擦系数时路程与时间的数据见表1-8。在同一张图中做出不同摩擦系数时路程随时间的变化曲线。
解:此问题可以将时间t写为一个列向量,相应测得的路程s的数据写为一个6×4的矩阵,然后利用plot命令即可。具体的程序如下。
表1-8 不同摩擦系数时路程和时间的关系
运行结果如图1-7所示。
图1-7 plot作图
3.plot(x1,y1,x2,y2,…)
plot(x1,y1,x2,y2,…)这个函数格式的功能是绘制多条曲线。在这种用法中,(xi,yi)必须是成对出现的,上面的命令等价于逐次执行plot(xi,yi)命令,其中i=1,2,…。
例1-14:在同一个图上画出的图像。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-8所示。
图1-8 plot作图
注意:
上面的linspace命令用来将已知的区间[0,2π]100等分。这个命令的具体使用格式为lins-pace(a,b,n),作用是将已知区间[a,b]作n等分,返回值为分各节点的坐标。
4.plot(x,y,LineSpec)
plot(x,y,LineSpec)中x、y为向量或矩阵,LineSpec为用单引号标记的字符串,用来设置所画数据点的类型、大小、颜色以及数据点之间连线的类型、粗细、颜色等。实际应用中,LineSpec是某些字母或符号的组合,LineSpec可以省略,此时将由MATLAB系统默认设置,即曲线一律采用“实线”线型,不同曲线将按表1-9所给出的前7种颜色(蓝、绿、红、青、品红、黄、黑)顺序着色。
LineSpec的合法设置参见表1-9~表1-11。
表1-9 颜色控制字符表
(续)
表1-10 线型符号及说明
表1-11 线型控制字符表
例1-15:在同一个图上画出的图像,分别设置曲线显示线型与颜色。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-9所示。
图1-9 plot作图
说明:
hold on命令用来使当前轴及图形保持不变,准备接受此plot所绘制的新曲线。hold off使当前轴及图形不再保持上述性质。hold在on和off之间切换保留状态。hold(ax,___)为ax指定的坐标区而非当前坐标区设置hold状态。指定坐标区作为以上任何语法的第一个输入参数。使用单引号将'on'和'off'输入引起来,例如hold(ax,'on')。
5.plot(x1,y1,s1,x2,y2,s2,…)
plot(x1,y1,s1,x2,y2,s2,…)格式的用法与用法3相似,不同之处是此格式有参数的控制,运行此命令等价于依次执行plot(xi,yi,si),其中i=1,2,…。
例1-16:在同一坐标系下画出下面函数在[-π,π]上的简图:
y1=esinx,y2=ecosx,y3=esinx+cosx,y4=esinx-cosx.
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-10所示。
小技巧:
如果读者不了解hold on命令及用法,但又想在当前坐标下画出后续图像时,可以使用plot命令的此种用法。
6.plot(x,LineSpec)
plot(x,LineSpec)格式的用法与用法4相似,不同之处的是此格式是一个参数的控制。
图1-10 plot作图1
例1-17:绘制向量的图像。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-11所示。
图1-11 plot作图2
7.plot(…,Name,Value)
plot(…,Name,Value)使用一个或多个Name-Value对组参数指定线条属性,线条的设置属性见表1-12。
表1-12 线条属性表
(续)
例1-18:在同一个图上画出y=sinx、y=cosx的图像,统一设置曲线显示线型与颜色。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-12所示。
8.plot(ax,…)
plot(ax,…)格式的用法将在由ax指定的坐标区中,而不是在当前坐标区(gca)中创建线条。其中,ax是指定坐标区,指定为Axes对象、PolarAxes对象或GeographicAxes对象。如果不指定坐标区或当前坐标区是笛卡儿坐标区,plot函数将使用当前坐标区。
若要在极坐标区上绘图,请指定PolarAxes对象作为第一个输入参数,或使用polarplot函数。要在地理坐标区上绘图,请指定GeographicAxes对象作为第一个输入参数,或使用geoplot函数。
图1-12 plot作图
例1-19:在指定的坐标区画出y=sinx、y=sin(x+1)的图像。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-13所示。
9.H=plot(…)
H=plot(…)格式的用法返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用H修改其属性。
例1-20:在同一个图上画出y=sinx、y=sin(x+1)的图像,分别设置曲线显示线型与颜色。
解:在MATLAB命令行窗口中输入如下命令。
运行结果如图1-14所示。
图1-13 plot作图1
图1-14 plot作图2