二维绘图
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指定的坐标区设为父图形窗口的当前坐标区。如果父图形窗口不是当前图形窗口,此选项不会使父图形窗口成为当前图形窗口 |
(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 characters | pixels |
Color | 窗口的背景颜色 | ColorSpec(有效的颜色参数) | 取决于颜色表 |
Menubar | 转换图形窗口菜单条的“开”与“关” | none、figure | figure |
Name | 显示图形窗口的标题 | 任意字符串 | ''(空字符串) |
NumberTitle | 标题栏中是否显示'Figure No.n',其中n为图形窗口的编号 | on、off | on |
Resize | 指定图形窗口是否可以通过鼠标改变大小 | on、off | on |
SelectionHighlight | 当图形窗口被选中时,是否突出显示 | on、off | on |
Visible | 确定图形窗口是否可见 | on、off | on |
WindowStyle | 指定窗口是标准窗口还是典型窗口 | normal(标准窗口)、modal(典型窗口) | normal |