绘图命令是学习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: 在同一坐标系下画出下面函数在[-π,π]上的简图:
解: 在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 =sin x 、 y =cos x 的图像,统一设置曲线显示线型与颜色。
解: 在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 =sin x 、 y =sin( x +1)的图像。
解: 在MATLAB命令行窗口中输入如下命令。
运行结果如图1-13所示。
9.H=plot (…)
H=plot(…)格式的用法返回由图形线条对象组成的列向量。在创建特定的图形线条后,可以使用H修改其属性。
例1-20: 在同一个图上画出 y =sin x 、 y =sin( x +1)的图像,分别设置曲线显示线型与颜色。
解: 在MATLAB命令行窗口中输入如下命令。
运行结果如图1-14所示。
图1-13 plot作图1
图1-14 plot作图2