二维绘图

plot绘图命令

plot(x)

plot(x)函数格式的功能如下。

  • 当x是实向量时,则绘制出以该向量元素的下标(即向量的长度,可用 MATLAB 函数length(求得)为横坐标,以该向量元素的值为纵坐标的一条连续曲线。
  • 当x是实矩阵时,按列绘制出每列元素值相对其下标的曲线,曲线数等于x的列数。
  • 当x是复数矩阵时,按列分别绘制出以元素实部为横坐标,以元素虚部为纵坐标的多条曲线。
多图形显示

(1)如果要在同一图形窗口中分割出所需要的几个窗口来,可以使用subplot命令

调用格式说 明
subplot(m,n,p)将当前窗口分割成mxn个视图区域,并指定第p个视图为当前视图
subplot(m,n,p,'replace')删除位置p处的现有坐标区并创建新坐标区
subplot(m,n,p,'align')创建新坐标区,以便对齐图框。此选项为默认行为
subplot(m,n,p,ax)将现有坐标区ax转换为同一图形窗口中的子图
subplot('Position',pos)在pos指定的自定义位置创建坐标区。指定pos作为[left bottom width height]形式的,四元素向量,如果新坐标区与现有坐标区重叠,新坐标区将替换现有坐标区
subplot(···,Name,Value)使用一个或多个“名称-值”对组参数修改坐标区属性
ax=subplot(···)返回创建的Axes对象,可以使用ax修改坐标区
subplot(ax)将ax指定的坐标区设为父图形窗口的当前坐标区。如果父图形窗口不是当前图形窗口,此选项不会使父图形窗口成为当前图形窗口

需要注意的是,这些子图的编号是按行来排列的,例如,第s行第t个视图区域的编号为s-1)xn+t。如果在此命令之前并没有任何图形窗口被打开,那么系统将会自动创建一个图形窗口,并将其割成mxn个视图区域。

(2)函数 tiledlayout()创建分块图布局用于显示当前图形窗口中的多个绘图。如果没有图形窗口,则MATLAB 创建一个图形窗口并按照设置进行布局;如果当前图形窗口包含一个现有布局,MATLAB使用新布局替换该布局

调用格式说 明
tiledlayout(m,n)将当前窗口分割成mxn个视图区域,默认状态下,只有一个空图块填充整个布局。,,当调用 nexttile 函数创建新的坐标区域时,布局都会根据需要进行调整以适应新坐,标区,同时保持所有图块的纵横比约为4:3
tiledlayout('flow')指定布局的'flow'图块排列
tiledlayout(···,Name,Value)使用一个或多个名称-值对组参数指定布局属性
tiledlayout(parent,···)在指定的父容器(可指定为Figure、Panel或Tab对象)中创建布局
t=tiledlayout(···)返回 TiledChartLayout 对象t,使用t配置布局的属性

分块图布局包含覆盖整个图形窗口或父容器的不可见图块网格,每个图块可以包含一个用于显示绘图的坐标区。创建布局后,调用函数 nexttile()将坐标区对象放置到布局中,然后调用绘图函数在该坐标区中绘图。函数nexttile()的调用格式见表。

调用格式说 明
nexttile创建一个坐标区对象,再将其放入当前图形窗口中的分块图布局的下一个空图块中
nexttile(tilenum)指定要在其中放置坐标区的图块的编号,图块编号从1开始,按从左到右、从,,上到下的顺序递增。如果图块中有坐标区或图对象,nexttile 会将该对象设为当前坐标区
nexttile(span)创建一个占据多行或多列的坐标区对象,指定span作为[rc]形式的向量。坐标,,区占据r(行)xc(列)的图块,坐标区的左上角位于第一个空的rxc区域的左上角
nexttile(tilenum,span)创建一个占据多行或多列的坐标区对象,将坐标区的左上角放置在tilenum 指定的图块中
nexttile(t,···)在t指定的分块图布局中放置坐标区对象
ax=nexttile(·-·)返回坐标区对象ax, 使用ax对坐标区设置属性
plot(x,y)

plot(x,y)函数格式的功能如下:

  • 当x、y是同维向量时,绘制以x为横坐标、以y为纵坐标的曲线。
  • 当x是向量,y是有一维与x等维的矩阵时,绘制出多根不同颜色的曲线,曲线数等于y阵的另一维数,x 作为这些曲线的横坐标。
  • 当x是矩阵,y是向量时,同上,但以y为横坐标。
  • 当x、y是同维矩阵时,以x对应的列元素为横坐标,以y对应的列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数。
plot(x1,y1,x2,y2,···)

plot(x1,y1,x2,y2,···)函数格式的功能是绘制多条曲线。在这种用法中,(xi,yi)必须是成对出现的,上面的命令等价于逐次执行plot(xi,yi)命令,其中i=1,2……。

plot(x,y,s)

plot(x,y,s)中的x、y为向量或矩阵,s为用单引号标记的字符串,用来设置所画数据点的类型、大小、颜色以及数据点之间连线的类型、粗细、颜色等。实际应用中,s是某些字母或符号的组合,这些字母和符号我们会在后续章节介绍。s可以省略,此时将由MATLAB系统默认设置,即曲线一律采用“实线”线型,不同曲线将按表6-6所给出的8种颜色(蓝、绿、红、青、品红、黄、黑、白)顺序着色。

字 符色 彩RGB 值
b(blue)蓝色001
g(green)绿色010
r(red)红色100
c(cyan)青色011
m(magenta)品红101
y(yellow)黄色110
k(black)黑色000
w(white)白色111

线型符号及说明

线型符号符号含义线型符号符号含义
-实线(默认值)点线
--虚线-.点画线

线型控制字符表

字 符数据点字 符数据点
+加号>向右三角形
o小圆圈<向左三角形
*星号S正方形
.实点h正六角星
X交叉号p正五角星
d菱形V向下三角形
V向上三角形
plot(x1,y1,s1,x2,y2,s2,……)

plot(x1,y1,s1,x2,y2,s2,··)格式的用法与用法3相似,不同之处是此格式有参数的控制,运行此命令等价于依次执行plot(xi,yi,si),其中i=1,2……。

fplot绘图命令

调用格式说 明
fplot(f)在x默认区间[-55]内绘制由函数y=f(x)定义的曲线。定义的曲线改用函数句柄,例如'sin(x)',改为@(x)sin(x)
fplot(f,lim)在指定范围lim内画出一元函数f的图形
fplot(f,lim,s)用指定的线型s画出一元函数f的图形
fplot(f,lim,n)画一元函数f的图形时,至少描出n+1个点
fplot(funx,funy)在t的默认间隔[-55]上绘制由x=funx(t)和y=funy(t)定义的曲线
fplot(funx,funy,tinterval)在指定的时间间隔内绘制。将间隔指定为[tmin tmax]形式的二元向量
fplot(···,LineSpec)指定线条样式、标记符号和线条颜色。例如,'-r'绘制一条红线。在前面语法中的任何输入参数组合之后使用此选项
fplot(-··,Name,Value)使用一个或多个“名称-值”对参数指定行属性
fplot(ax,···)绘制到由x指定的轴中,而不是当前轴(GCA)。指定轴作为第一个输入参数
fp=fplot(···)根据输入返回函数行对象或参数化函数行对象。使用FP查询和修改特定行的属性
[X,Y]=fplot(f,lim,···)返回横坐标与纵坐标的值给变量X和Y,不绘制图形

不同坐标系下的绘图命令

极坐标系下绘图

在MATLAB中,polarplot 命令用来绘制极坐标系下的函数图像

polarplot 命令的调用格式:

调用格式说 明
polarplot(theta,rho)在极坐标中绘图,theta代表弧度,rho代表每个点的半径值,输入必须是长度,,相等的向量或大小相等的矩阵
polarplot(theta,rho,LineSpec)在极坐标中绘图,参数 LineSpec的内容与plot命令中的参数s相似,用于设置线条的线型标记符号和颜色

半对数坐标系下绘图

半对数坐标在工程中也是很常用的,MATLAB提供的 semilogx 与semilogy 命令可以很容易地现这种作图方式。semilogx命令用来绘制x轴为半对数坐标的曲线,semilogy 命令用来绘制y轴为半对数坐标的曲线,它们的调用格式是一样的。以semilogx命令为例。

调用格式说 明
semilogx(Y)绘制以10为基数的对数刻度的x轴和线性刻度的y轴的半对数坐标曲线,若Y是实矩阵,则按列绘制每列元素值相对其下标的曲线图;若为复矩阵,则等价于,semilogx(real(Y),imag(Y))命令
semilogx(X1,Y1,···)对坐标对(Xi,Yi)(i=1,2,···),绘制所有的曲线,如果(Xi,Yi)是矩阵,则以(Xi,Yi)对,,应的行或列元素为横纵坐标绘制曲线
semilogx(X1,Y1,LineSpec,···)对坐标对(Xi,Yi)(i=1,2,···),绘制所有的曲线,其中LineSpec是控制曲线线型、标,,记以及色彩的参数
semilogx(*-·,'PropertyName', PropertyValue,···)设置所有用semilogx命令生成的图形对象的属性
semilogx(ax,···)在由ax指定的坐标区中创建线条
h=semilogx(···)返回line图形句柄向量,每条线对应一个句柄

双对数坐标系下绘图

MATLAB提供了双对数坐标系下的绘图命令loglog,它的使用格式与semilogx相同。

双y轴坐标

双y轴坐标在实际中常用来比较两个函数的图像,命令yyaxis用于绘制具有两个y轴的数据图。

调用格式说 明
yyaxis left用左边的y轴画出数据图。如果当前坐标区中没有两个y轴,将添加第二个y轴;如果没有坐,,标区,则首先创建坐标区
yyaxis right用右边的y轴画出数据图
yyaxis(ax,···)指定ax坐标区(而不是当前坐标区)的活动侧为左或右。如果坐标区中没有两个y轴,将添加第二个y轴。指定坐标区作为第一个输入参数,使用单引号将left和right引起来

图形窗口

图形窗口的创建

在MATLAB中,使用函数figure()来建立图形窗口。该函数有下面5种用法。

  • figure:创建一个图形窗口。
  • figure(n):查找编号(Number属性)为n的图形窗口,并将其作为当前图形窗口。如果不存在,则创建一个编号为n的图形窗口,其中n是一个正整数,表示图形窗口的句柄。
  • figure(f):将f指定的图形窗口作为当前图形窗口,显示在其他所有图形窗口之上。
  • f=figure(···):返回Figure对象,常用于查询可修改指定的图形窗口属性。
  • figure('PropertyName',PropertyValue,···):对指定的属性 PropertyName,用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口;对于那些没有指定的属性,则用默认值。属性名与有效的属性值见表。
属性名说 明有效值默认值
Position图形窗口的位置与大小四维向量[left,bottom,width,height]取决于显示
Units用于解释属性Position的度量单位inches centimeters normalized points pixels characterspixels
Color窗口的背景颜色ColorSpec(有效的颜色参数)取决于颜色表
Menubar转换图形窗口菜单条的“开”与“关”none、figurefigure
Name显示图形窗口的标题任意字符串''(空字符串)
NumberTitle标题栏中是否显示'Figure No.n',其中n为图形窗口的编号on、offon
Resize指定图形窗口是否可以通过鼠标改变大小on、offon
SelectionHighlight当图形窗口被选中时,是否突出显示on、offon
Visible确定图形窗口是否可见on、offon
WindowStyle指定窗口是标准窗口还是典型窗口normal(标准窗口)、modal(典型窗口)normal

表里内容太多啦,书中118页。

最后修改:2023 年 10 月 02 日
如果觉得我的文章对你有用,请随意赞赏