MATLAB中常用到的绘图函数

时间:2022-04-07 19:28:37

有关命令行环境的一些操作: (1) clc 擦去一页命令窗口,光标回屏幕左上角 (2) clear 从工作空间清除所有变量 (3) clf 清除图形窗口内容

命令1  figure

功能  创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。

用法  figure 用缺省的属性值创建一个新的图形对象。

 

命令2  subplot

功能  生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图形输出于当前的部分中。

用法  subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p中的小窗口。

 

命令3  hold

功能  保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。

用法  hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形。但是,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,以适应新图形。

   hold off 在画新图形之前,重新设置坐标轴的属性为缺省值。

 

命令4  axis

功能  坐标轴的刻度与外在显示

用法  axis([xmin xmax ymin ymax]) 设置当前坐标轴的x-轴与y-轴的范围。

 

命令5 close

功能  关闭指定的图形窗口。

用法  close 关闭当前的图形窗口。

 

二、            MATLAB绘图参数控制

命令1  plot

功能  这是最基本、最常用的绘图函数,用于绘制线性二维图。有多条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。

plot 作图时,可以通过四个参数选择控制曲线的类型。

1.线型(4种)

定义符

-

--

-.

线型

实线(缺省值)

划线

点线

点划线

 

2.线条宽度

指定线条的宽度,取值为整数(单位为像素点)

例如:plot( x, y, ‘linewidth’, 4 )

 

3.颜色(8种)

定义符

R(red)

G(green)

b(blue)

c(cyan)

颜色

红色

绿色

兰色

青色

定义符

M(magenta)

y(yellow)

k(black)

w(white)

颜色

品红

黄色

黑色

白色

 

4.标记类型(13种)

定义符

+

o(字母)

*

.

x

类型

加号

小圆圈

星号

实点

交叉号

定义符

d

^

v

类型

棱形

上三角形

下三角形

右三角形

左三角形

定义符

s

h

P

 

 

类型

正方形

正六角星

正五角星

 

 

 

三、MATLAB图形标住函数

命令1  title

功能  给当前轴加上标题。每个axes图形对象可以有一个标题。标题定位于axes的上方正*。

用法  title('string') 在当前坐标轴上方正*放置字符串string作为标题。

 命令2  xlabel、ylabel

功能  给x、y轴贴上标签

用法  xlabel('string')、 ylabel(‘string’)  给当前轴对象中的x、y轴贴标签。

 命令3  grid

功能  给二维或三维图形的坐标面增加分隔线。

用法  grid on 给当前的坐标轴增加分隔线。

      grid off 从当前的坐标轴中去掉分隔线。

      grid 转换分隔线的显示与否的状态。

 命令4  legend

功能  在图形上添加图例。该命令对有多种图形对象类型(线条图,条形图,饼形图等)的窗口中显示一个图例。对于每一线条,图例会在用户给定的文字标签旁显示线条的线型,标记符号和颜色等。

用法  legend('string1', 'string2',…, pos) 用指定的文字string在当前坐标轴中对所给数据的每一部分显示一个图例,在指定的位置pos放置这些图例。

 命令5  gtext

功能  在当前二维图形中用鼠标放置文字。当光标进入图形窗口时,会变成一个大十字,表明系统正等待用户的动作。

用法  gtext('string') 当光标位于一个图形窗口内时,等待用户单击鼠标或键盘。若按下鼠标或键盘,则在光标的位置放置给定的文字“string”

 命令6  text

功能  在当前轴中创建text对象。函数text是创建text图形句柄的低级函数。可用该函数在图形中指定的位置上显示字符串。

用法  text(x,y,'string') 在图形中指定的位置(x,y)上显示字符串string。

 命令7  zoom

功能  对二维图形进行放大或缩小。放大或缩小会改变坐标轴范围。

用法  zoom on 打开交互式的放大功能。当一个图形处于交互式的放大状态时,有两种方法来放大图形:

方法1:用鼠标左键单击坐标轴内的任意一点,可使图形放大一倍,这一操作可进行多次,直到matlab的最大显示为止;在坐标轴内单击右键,可使图形缩小一倍,这一操作可进行多次,直到还原图形为止。

方法2:用鼠标拖出要放大的部分,系统将放大选定的区域。

 命令8  num2str, int2str

功能  将数字或整数转换为字符串,以便于图形标注。

用法  st = num2str(x) 将变量x值表示为字符串st。

st = int2str(x) 将变量x的整数部分表示为字符串st。


MATLAB函数

为了显示三维图形,MATLAB提供了各种各样的函数。有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。另外,颜色可以用来代表第四维。当颜色以这种方式使用时,由于它不再象照片中那样显示信息的自然属性----色彩,而且也不是基本数据的内在属性,所以它称作伪彩色。为了简化对三维图形的讨论,对颜色的介绍推迟到下一章。在这一章,主要讨论绘制三维图形的基本概念。
以下所讨论的函数和它们的特征总结在表2、表3、表4和表5中:
2
contour
二维等值线图,即从上向下看contour3等值线图contour3等值线图fill3填充的多边形mesh网格图meshc具有基本等值线图的网格图meshz有零平面的网格图pcolor二维伪彩色绘图,即从上向下看surfplot3直线图quiver二维带方向箭头的速度图surf曲面图surfc具有基本等值线图的曲面图surfl带亮度的曲面图waterfall无交叉线的网格图 

表示3
axis
修正坐标轴属性clf清除图形窗口clabel放置等值线标签close关闭图形窗口figure创建或选择图形窗口getframe捕捉动画桢grid放置网格griddata对画图用的数据进行内插hidden隐蔽网格图线条hold保留当前图形meshgrid产生三维绘图数据movie放动画moviein创建桢矩阵,存储动画shading在曲面图和伪彩色图中用分块、平滑和插值加阴影subplot在图形窗口内画子图text在指定的位置放文本title放置标题view改变图形的视角xlabel放置x轴标记ylabel放置y轴标记zlabel放置z轴标记
4
view(az,el)
设置视图的方位角az和仰角elview([az,el])view([x,y,z])在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([0 0 1])=view(0,90)view(2)设置缺省的二维视图,az=0el=90view(3)设置缺省的三维视图,az=-37.5el=30[az,el]=view返回当前的方位角az和仰角elview(T)用一个4×4的转置矩阵T来设置视图T=view返回当前的4×4转置矩阵
5
mmcont2(X,Y,Z,C)
具有颜色映象的二维等值线图mmcont3(X,Y,Z,C)具有颜色映象的三维等值线图mmspin3d(N)旋转当前图形的三维方位角来制作动画mmview3d用滑标来调整视角
另外提醒一点,Matlabreshape函数是列优先的,如:
y =     1     2     3     4     5     6
reshape(y,3,2)=
     1     4
     2     5
     3     6
     而不是      1  2  3
                 4  5  6

一、直接绘图函数
直接绘图函数有两个,fplotezplot
1.fplot
fplot
命令的调用格式主要有:
1fplot(fun,lims,str,tol):直接绘制函数y=fun(x)的图形。其中,lims为一个向量,若lims只包含两个元素则表示x轴的范围:[xmin,xmax]。若lims包含四个元素则前两个元素表示x轴的范围:[xmin,xmax],后两个元素表示y轴的范围:[ymin,ymax]str可以指定图形的线型和颜色。tol的值小于1,代表相对误差,默认值为0.002,即0.2%
>>fplot(@humps,[-1,5])  %[-1,5]范围内绘制函数humps
上述命令中,@humps表示以函数句柄的形式引用函数。(C:Program FilesMATLABR2009atoolboxmatlabdemoshumps.m)
2fplot(fun,lims,n):用最少n+1个点来绘制函数fun的图形,其中n大于等于1
>>fplot('x^2',[-1 1])  %[-1,1]范围内绘制函数y=x^2

 

2. ezplot,ezplot3
ezplot
命令是绘制符号表达式的自变量和对应各函数值的二维曲线,ezplot3命令用于绘制三维曲线。
(1) 曲线绘图
语法:
ezplot(F,[xmin,xmax],fig)   %画符号表达式F的图形
说明:F是将要画的符号函数;[xmin,xmax]是绘图的自变量范围,省略时默认值为[2л]fig是指定的图形窗口,省略时默认为当前图形窗口。
例:
>>y =sym('-1/3*x^3+1/3*x^4')  
y =
-1/3*x^3+1/3*x^4  
>>ezplot(y)   %
绘制符号函数y[2л]中的图形
>>ezplot(y,[0,100])   %绘制符号函数y[0,100]中的图形
又例
>>x=sym('sin(t)');
>>y=sym('cos(t)');
>>z=sym('t');
>>ezplot3(x,y,z,[0,10*pi],'animate')  %
绘制t[0,10*pi]范围的三维曲线 
(2)
曲面绘制

>>ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmesh意为Easy to use 3-D mesh plotter,所以其调用格式简单,绘图方便。

3)其它绘图命令
MATLAB还提供了如下表所示的较常用绘图命令。这些命令的举例都是对字符串函数进行绘图,同样也可用于符号表达式绘图。
命令名 含义 举例
ezcontour 画等高线ezcontour('x*sin(t)',[-4,4])
ezcontourf
画带填充颜色等高线ezcontourf('x*sin(t)',[-4,4])
ezmesh
画三维网线图ezmesh('sin(x)*exp(-t)','cos(x)*exp(-t)','x',[0,2*pi])
ezmeshc
画带等高线的三维网线图ezmeshc('sin(x)*t',[-pi,pi])
ezpolar
画极坐标图  ezpolar('sin(t)',[0,pi/2])
ezsurf
画三维曲面图ezsurf('x*sin(t)','x*cos(t)','t',[0,10*pi])
ezsurfc
画带等高线的三维曲面图ezsurfc('x*sin(t)','x*cos(t)','t',[0,pi,0,2*pi])

二、网格法绘制三维曲面

  1.产生三维数据
MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为:
x=a:d1:b; y=c:d2:d;
[X,Y]=meshgrid(x,y);
语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
  2.绘制三维曲面的函数
surf函数和mesh函数的调用格式为:
mesh(x,y,z,c)
surf(x,y,z,c)
一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例:
  用曲面图表现函数y=x^2+y^2
  clf,x=-4:4;y=x;[X,Y]=meshgrid(x,y);
  Z=X.^2+Y.^2;
  surf(X,Y,Z); %
mesh(X,Y,Z)