MATLAB之绘图基础

7部分 MATLAB的绘图基础

1.二维图形绘制

(1)plot()函数

格式:

plot(x)

plot(x,y)

图形绘制函数plotx)的格式说明

x内容

说明

实向量y

y元素下标序号i为横坐标,元素y为纵坐标,绘制(Iy)的有序集合的图形,中间以线段连接

实矩阵

对于矩阵,即含有mXn个元素的矩阵,则函数绘出n条具有m个点的曲线,这些点以序列号为横坐标,以列元素为纵坐标,且这n条曲线均采用系统默认的不同的颜色绘制而成

负数矩阵

对于mXn的复数矩阵,每行以横轴为实轴,纵轴为虚轴,绘制(real(),imag())的有序集合的m条具有n个点的曲线段图形,这样,复数矩阵在复平面上表示出来了

.利用函数plot()来绘制实向量Y=[27,99,31,75,325,721,43,12]A=[23,672;440,100;543,64]和复数矩阵Z=[25-23i,63-77i,34-64i,123-34i]

>> Y=[27,99,31,75,325,721,43,12];

>> plot(Y)

 MATLAB之绘图基础_第1张图片

>> A=[23,672;440,100;543,64];

>> plot(A)

 MATLAB之绘图基础_第2张图片

>> Z=[25-23i,63-77i,34-64i,123-34i];

>> plot(Z)

 MATLAB之绘图基础_第3张图片

图形绘制函数plot(X,Y)的格式说明

X数据类型

Y数据类型

说明

实向量x

x同长度的实向量y

绘制以同下标的x为横坐标,y为纵坐标的曲线段

长度为mn的实向量x

维度为mXn的矩阵

绘制矩阵A对向量x的图形,对mXn的矩阵A和长度为m的向量x,绘制矩阵A的列对向量x的图形。如果x的长度为n,则绘制矩阵A的行对向量x的图形。向量x可以是行向量也可以是列向量

维度为mXn的矩阵

长度为mn的实向量x

对矩阵A绘制向量x的图形,对于一个mXn的矩阵A个长度为m的向量x,对矩阵A的列绘制向量x的图形。如果x的长度为n,则对矩阵A的行绘制向量x的图形。向量x可以是行向量,也可以是列向量

维度为mXn的矩阵

维度为mXn的矩阵

对矩阵A的行绘制矩阵的B的列的图形。如果AB都是mXn的矩阵,将绘制n条由m个有序对连成的曲线

 

(2)线型、标记和颜色

 

 

颜色

符号

b

g

r

c

说明

蓝色

绿色

红色

青色

符号

m

y

k

w

说明

品红色

黄色

黑色

白色

线性

符号

-

:

-.

--

说明

实线

点线

画点线

虚线

 

标记点型

符号

.

o

x

*

+

none

<

说明

X

星号

+

无点

顶点指定左边的三角

符号

S

d

p

h

^

v

>

说明

正方形

菱形

五角星形

六角星形

正三角

倒三角

顶点指向右边的三角

.利用plot()函数实现图形曲线的线型、颜色和标记点的改变

>> x=-pi:pi/10:pi;

>> y=tan(sin(x))-sin(tan(x));

>> plot(x,y,'--rp')

 MATLAB之绘图基础_第4张图片

修饰命令集

proerty

说明

内容

LineWidh

曲线线宽

数值

MarkerEdgeColor

标记点边框线条颜色

颜色字符

MarkerFaceColor

标记点填充颜色

颜色字符

MarkerSize

标记点大小

数值

(3)多个图形叠绘及多个图形窗口

表达式

说明

hold

切换当前的绘图叠加模式,将当前的绘图窗口的叠加模式从off切换至on,或者从on切换至off

hold on

当前叠加绘图模式状态为开,即保持当前轴及图形,准备接受绘制的新图形

hold off

当前叠加绘图模式状态开关,即当前轴及图形不再具有叠加绘图的性质

hold all

不用实现hold on的功能,使当前的叠加绘图模式打开,而且使新的绘图函数依然循环初始设置的颜色循环顺序和线型循环顺序

.利用plot()函数绘制正弦函数sin()的图像,然后进行叠绘状态的转换,并在原图形上进行叠绘操作。

>> x=-pi:0.1:pi;

>> y=sin(x);

>> plot(x,y)

 MATLAB之绘图基础_第5张图片

>> hold on

>> Current plot held

>> z=cos(x);

>> plot(x,z,'--r')

>> hold

Current plot released

 MATLAB之绘图基础_第6张图片

 

>> m=-cos(x);

>> plot(x,m,':k')

 MATLAB之绘图基础_第7张图片

(4)子图绘制

subplot(m,n,k):在当前绘图区域建立mn列绘图子区,并在第k个子区建立坐标系,设置该子区为当前图绘制区域

subplot(‘position’,[left,bottom,widt,hight]):在当前绘图窗口的指定位置开辟子图所需的子区,并在子区建立坐标系,设置该子区为当前图绘制区域。[left,bottom,widt,hight]为实数行矩阵,left的值为距离绘图框左边框的距离值;bottom的值为距离绘图框底部的距离值;width为子图框的宽度值;hight为子图框的高度值。

.利用suplot()函数在MATLAB绘图窗口创建多子图

>> t=-pi:0.01:pi;

>> y1=sin(t);

>> y2=cos(5*t);

>> y3=sin(4*t).*sin(t);

>> y4=sin(y3).*cos(t);

>> subplot(3,2,1),plot(t,y1)

>> title('子图一');

>> subplot(3,2,2),plot(t,y2)

>> title('子图二');

>> subplot(3,2,3),plot(t,y3)

>> title('子图三');

>> subplot('position',[0.3,0.05,0.6,0.3]),plot(t,y4);

>> title('子图四');

 MATLAB之绘图基础_第8张图片

(5)交互式绘图和屏幕刷新

a.ginput()函数

[x,y]=ginput(n):该函数可使用户通过鼠标捕捉所在二维图形坐标系中的n歌点的坐标值,并将其记录下来。若取点不超过n可以通过按【Enter】键来结束;若n缺省则可以取无限个点的坐标值,按【Enter】键结束取点。

[x,y,button]=ginput(n):该函数形式中n的说明同上。button是返回捕捉点按键所代表的数值,如左键为1,中键为2,右键为3.其他键则为其对应的ASCII值,如A键为65,1键为49等。

.绘制正弦函数sin()的图形,并用ginput()函数的第一种形式来捕捉函数图形的零点和顶点,顺次用鼠标右键,S键和1键来捕捉任意3点的值,并输出bottom

>> x=-pi:pi/1000:pi;

>> y=sin(x);

>> plot(x,y)

>> [x,y]=ginput(4)

 

x =

 

    0.4689

    0.6555

    0.2062

    0.2016

 

 

y =

 

    0.4956

    0.4927

    0.0863

   -0.0015

 

>> [x,y,bottom]=ginput()

 

x =

 

    0.1141

    0.2730

y =

 

    0.4459

    0.1798

   

bottom =

 

     1

     1

b.zoom()函数

命令

说明

zoom

对图形缩放状态进行命令的切换

zoom(factor)

factor为缩放因子

zoom on

允许对坐标轴进行缩放

zoom off

取消对坐标轴的缩放

zoom out

恢复对坐标值的设置

zoom reset

将当前的坐标轴设置初始值

zoom xon

允许对x轴进行缩放

zoom yon

允许对y进行缩放

6)使用plotyy()函数绘制双坐标轴

 a.叠绘发绘图

.利用hold on将两个函数图绘制在一个坐标轴中

>> x=1:0.001:3;

>> y1=x.^3;

>> y2=sin(y1);

>> plot(x,y2)

 MATLAB之绘图基础_第9张图片

  >> hold on

>> Current plot released

>> plot(x,y1)

 MATLAB之绘图基础_第10张图片

b.使用plotyy()函数绘图

.利用plotyy()函数检测上例中双纵坐标图性质,并利用set()函数对双坐标轴和曲线属性进行设置。

>> x=1:0.001:3;

>> y1=x.^3;

>> y2=sin(y1);

>> [AX,H1,H2]=plotyy(x,y1,x,y2,'plot')

 

AX =

 

  173.0018  175.0018

 

 

H1 =

 

  174.0028

 

 

H2 =

 

  176.0023

 MATLAB之绘图基础_第11张图片

>> set(AX(1),'YTick',[0 5 10 15 20 25 30 35 40])

>> set(AX(2),'YTick',[-1 -0.75 -0.5 -0.25 0 0.25 0.5 0.75 1])

>> set(H1,'LineStyle','--','Color','r')

>> set(H2,'LineStyle','.','Color','k')

Warning: Setting marker type based on 'LineStyle' property

""         'Marker' and 'LineStyle' have been made separate properties

""         Use 'Marker' property to remove this warning

 MATLAB之绘图基础_第12张图片

 

(7)Easy绘图命令

a.fplot()函数

模式

说明

fplot(fun,limits,tol,LineSpec)

以一定的方式绘制fun()函数图形。fun()为函数名或函数句柄;limits为坐标轴的范围,形式为[xmin xmax ymin ymax];tol为函数的误差范围,默认为2e-3;LineSpec为绘图曲线的性质,如线型、颜色和标记点等

fplot(fun,limits,n)

n>=1,则取点为n+1绘制fun()函数图形;若缺省则系统默认为1.在此情况下,最大极限范围为(1/n*(xmax-xmin)

[X,Y]=fplot(fun,limits)

系统根据情况取定画图点,并将坐标轴返回到X,Y中。此命令不会绘制图形,只是取点。然而,用户可以通过函数plot(X,Y,...)进行绘图

.利用fplot()函数绘图图形

>> fn=@(x)sin(x^2);

>> fplot(fn,[-2,2],':r*')

 MATLAB之绘图基础_第13张图片

b.ezplot()函数和ezpolar()函数

格式

说明

ezplot(fun)

在系统默认区间[-2π,2π]范围绘制fun()函数的曲线图像

ezplot(fun,[mix,max])

在用户自定义的区间[min,max]内绘制fun()函数的曲线图像

ezplot(fun,[min,max],fig)

在用户指定的函数绘制窗口和自定义的区间[min,max]下,绘制fun()函数的曲线图像

.利用ezplot()函数绘制的函数图形,利用ezpolar()函数绘制y=cos(t-2)/t的函数图形

>> syms t

>> y=(3*sin(2*t+1))/(4*exp((2*t)/3));

>> ezplot(y,[0,3*pi])

>> grid on

 MATLAB之绘图基础_第14张图片

2.三维图形绘制

(1)曲线图绘制

格式

说明

plot3(X,Y,Z,’S’)

利用坐标值函数在三维图形框中绘制出相应的图形,’S’为绘图曲线性质,如线型、颜色和标记点等

plot3(X,Y,Z,’S’,’ProperyName’,Porperty Value)

利用坐标值函数在三维图形框中绘制出相应的图形,并对图形属性进行设置

h=plot3(X,Y,Z,’S’)

利用plot3函数绘制图形,同时返回图形句柄

.利用plot3()函数绘制三维图形,其坐标为(cos(2t)sin(t),sin(2t),t,并对所绘制的图形属性进行设置。

>> t=-1.1*pi:0.008*pi:1.1*pi;

>> plot3(cos(2*t).*sin(2*t),sin(2*t),t,'rp')

>> grid on

MATLAB之绘图基础_第15张图片 

(2)网络图绘制

mesh(X,Y,Z):最常用的网络图调用形式,图形的颜色深浅与z的高度成正比。若XY均为向量,XY的长度分别为mn,则矩阵Z的大小就为mXn;若XY为矩阵,则为网络线的交点。

mesh(Z):上一个表达式中的XY缺省时,若矩阵Z的大小为mXn,X=1n,Y=1:m,其余的同上。

mesh(X,Y,Z,C):最完整的网络图调用形式,以矩阵C来进行颜色设置,若XYZ均为矩阵,则其要求与C拥有相同的维度。

meshc():在网络线的下方绘制一个等值线图。

meshz():在网格线的周围绘制一个窗帘图

.利用mesh()函数绘制peaks(35)函数图形

>> z=peaks(35);

>> mesh(z)

 MATLAB之绘图基础_第16张图片

>> meshc(z)

 MATLAB之绘图基础_第17张图片

 

(3)曲面图绘制

shading faceted:在绘制曲面是采用分层网络线,并填充默认值颜色

shading flat:表示平滑式颜色分布方式;去掉黑色线条,补片保持单一颜色。

shading interp:表示插补式颜色分布方式;同样去掉线条,但补片以插值加色。这种方式需要比分块和平滑更多的计算量。

.使用surf()函数绘制peaks(35)函数图形

>> z=peaks(35);

>> surf(z)

 MATLAB之绘图基础_第18张图片

>> shading flat

 MATLAB之绘图基础_第19张图片

>> shading interp

 MATLAB之绘图基础_第20张图片

(4)绘制等值线图

格式

说明

contour(z,s)

z为等值线的数值绘图等值线图,s为等值线的属性,如线型、颜色等

contour(z,n)

按用户要求绘图等值线,n为所画等值线的条数,MATLAB会根据条数和函数值分配等值线的数值

contour(z,v)

按照向量v和函数值分配等值线数值间隔,并依次绘制等值线图

[c,h]=contour(z)

返回等值线图形的等值线向量c和等值线句柄

.利用contour()函数绘制peaks(35)的等值线图

>> z=peaks(35);

>> mesh(z)

>> hold

Current plot held

>> contour3(z,4,'-k')

 MATLAB之绘图基础_第21张图片

3.特别图形绘制

(1)区域图绘制

格式:area(X,Y,’PropertyName’,PropertyValue,)

其中,当X,Y均为行向量时,其结果等同于plot(X,Y);X为行向量,Y为矩阵时,以X为横坐标绘制矩阵Y,每列累计数值为纵坐标绘制图形。当Y缺省时,默认YX的下标组成的行向量。

.利用区域绘图函数area()绘制区域图,其中x=[24,45,48,56,48,64,41;45,85,82,52,90,52,37]

y=[1,5,1,4,6,8,8;4,8,2,4,6,4,5]

>> x=[24,45,48,56,48,64,41;45,85,82,52,90,52,37];

>> y=[1,5,1,4,6,8,8;4,8,2,4,6,4,5];

>> area(x,y)

 MATLAB之绘图基础_第22张图片

(2)饼图绘制

pie(x):绘制向量x的饼图,向量x的每一个元素就是饼图中的一个扇形

pie(x,explode):explodex是维度相同的矩阵,如果explode中有非零元素,x中对应的元素在饼图中的图形就会外移突出,加强强调

pie(x,labels):labels来定义标识对应饼图扇形部分。当缺省时则为各部分所占百分比

.x=[24,84,40,152,80,54]情况下,利用pie()函数绘制饼图

>> x=[24,84,40,152,80,54];

>> pie(x)

 MATLAB之绘图基础_第23张图片

(3)直方图和梯形图

格式:bar(X,Y,width,’style’)

其中,width用于设置直方图条形的相对宽度和条形之间的间距;style设置条形的形状类型,如groupstackdetached等。

.利用直方图和梯形图表示数据y=sin(x)的分布情况,其中x=-pi:0.1pi:pi

>> x=-pi:0.1*pi:pi;

>> y=sin(x);

>> bar(x,0.5,'r')

 MATLAB之绘图基础_第24张图片

>> stairs(y)

 MATLAB之绘图基础_第25张图片

(4)矢量分布绘制

格式

说明

quiver(x,y,u,v)

使用(x,y)为指定点用箭头代表的矢量方向来绘制向量,uv是对应的方向递增量。其中,x,y,uv的维度必须是相同的

quiver(u,v,scale)

在默认的x-y的坐标系中绘制向量,uv是对应的发现递增量.scale是用来设定向量图中的箭头长度

.绘出x=-pi:0.1*pi:piy=sin(x)以及u=-1:0.1:1cos(u)之间的矢量分布图

>> x=-pi:0.1*pi:pi;

>> y=sin(x);

>> u=-1:0.1:1;

>> v=cos(u);

>> quiver(x,y)

 MATLAB之绘图基础_第26张图片

>> quiver(x,y,u,v,0.8,'r')

 MATLAB之绘图基础_第27张图片

(5)离散数据图绘制

格式

说明

stem(x)

绘制x的离散数据图,系统自动等间距绘制离散线

stem(x,y,’s’)

x为横坐标,以y为纵坐标绘制离散点,并将离散点和横轴垂直连接。s为离散线的属性,如线型、颜色和点型

.绘制y=sin(x)的离散数据图,其中x=-pi:0.1pi:pi

>> x=-pi:0.1*pi:pi;

>> y=sin(x);

>> stem(y,':m*')

 MATLAB之绘图基础_第28张图片

(6)误差线图形绘制

格式

说明

errorbar(x,y,e)

根据x,y绘制曲线,在每点处绘制上下误差值长度的误差条

errorbar(x,y,u,d)

根据x,y绘制曲线,在每点处绘制上误差值为、下误差值为的误差条

errorbar(...,’s’)

s为曲线属性,如线宽、标记点和颜色等

.利用errorbar()函数绘制x=-pi:0.1pi:piy=sin(x),上误差为u=-1:0.1:1,下误差为v=cos(u)的误差图

>> x=-pi:0.1*pi:pi;

>> y=sin(x);

>> u=-1:0.1:1;

>> v=cos(u);

>> errorbar(x,y,u,v,'-r')

 MATLAB之绘图基础_第29张图片

(7)伪色彩图绘制

格式

说明

pcolor(x)

绘制x为颜色矩阵的伪彩色图

pcolor(x,y,c)

在坐标系中的(x,y)点以颜色c为伪彩色矩阵绘制伪彩色图

(8)极坐标图形绘制

格式:polar(theta,rho,LineSpac)

其中,theta为角度,rho为半径,LineSpac为曲线属性,如颜色、线型和标记点

.利用polar()函数绘制y=cos(2x)极坐标图,其中x=0:0.1:2pi

>> x=0:0.1:2*pi;

>> y=cos(2*x);

>> polar(x,y,'-m*')

 MATLAB之绘图基础_第30张图片

4.图形处理

(1)图形标注

title(s):在图形的上部书写图名

xlabel(s):在横轴处书写横坐标标名

ylabel(s):在纵坐标处书写纵坐标标名

text(x,y,s):在(x,y)处书写字符注释

legend(s1,s2,...):在图形的右上角书写图例注释

.利用标注方法对吐血进行标注.图形喂y1=exp(0.6.^x)-1.7;y2=sin(x*3),其中x=0:0.05:5

>> x=0:0.05:5;

>> y1=exp(0.6.^x)-1.7;

>> y2=sin(x*3);

>> plot(x,y1,x,y2,'m:')

>> xlabel('input:x','fontsize',20)

>> ylabel('output:y','fontsize',15)

>> legend('y1=exp(0.4.^x)-1.5','y2=sin(x*4)')

>> grid on

 MATLAB之绘图基础_第31张图片

(2)坐标轴的控制

a.分隔线

grid on:在图形中画出分格线

grid off:在图形中不画不画分格线

box on:当前图形坐标呈现封闭状态

box off:当前图形坐标呈现开启状态

b.坐标轴控制

命令

说明

命令

说明

axis auto

坐标轴采用默认设置

axis equal

等长刻度横纵坐标系

axis ij

矩阵式坐标系

axis normal

缺省矩形坐标系

axis xy

普通直角坐标系

axis square

正方形坐标系

axis(V)

V=[x1,x2,y1,y2]

V=[x1,x2,y1,y2,z1,z2]

用户自定义坐标范围(二维三维均可)。其中,x1,x2为横轴的范围值,其他类似

axis tight

坐标范围由数据大小自动取定

axis image

等长刻度横纵坐标系,且坐标框紧贴数据范围

 

(3)图形的打印和输出

a.图形输出命令print

命令

说明

print

将当前图形窗口的一个高分辨率图形复制发送至打印机。这要求将print命令分配给打印机

print filename

将当前图形窗口的图形复制保存到文件filename

print(handle,’filename’)

将图形句柄和文件名复制发送至可以使用的打印机

[pcmd,dev]=printopt

将用户输入的命令和设备选择,返回strdev。此时有可能要修改这个M文件

b.纸张方向控制命令

命令

说明

orient landscape

将下次的打印方向设置为landscape,即水平方向

orient portrait

将下次的打印方向设置为portait,即竖直方向

orient tall

将下次的打印方向设置喂竖直方向,并将打印纸设置为离边框0.25英寸的地方打印

orient

将当前的打印方向返回一个字符串中,并显示在命令框中

 

5.图形窗口

(1)图形窗口的创建与控制

窗口名

命令

操作

图形面板(Figure Palette)

figurepalette

选择【ViewFigure Palette】命令

绘图浏览器(Plot Browser)

plotbrowser

选择【ViewPlot Browser】命令

属性编辑器(Property Editor)

propertyeditor

选择【ViewProperty Editor】命令

.创建图形窗口,并打开各绘图窗口

 >> figure

>> x=peaks(40);

>> surf(x)

 MATLAB之绘图基础_第32张图片

 

你可能感兴趣的:(MATLAB)