Matlab绘图功能.docx

上传人:b****5 文档编号:5047168 上传时间:2022-12-12 格式:DOCX 页数:31 大小:965.68KB
下载 相关 举报
Matlab绘图功能.docx_第1页
第1页 / 共31页
Matlab绘图功能.docx_第2页
第2页 / 共31页
Matlab绘图功能.docx_第3页
第3页 / 共31页
Matlab绘图功能.docx_第4页
第4页 / 共31页
Matlab绘图功能.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

Matlab绘图功能.docx

《Matlab绘图功能.docx》由会员分享,可在线阅读,更多相关《Matlab绘图功能.docx(31页珍藏版)》请在冰豆网上搜索。

Matlab绘图功能.docx

Matlab绘图功能

第五章Matlab绘图功能

5.1二维图形的绘制

5.1.1常用的二维图形绘图函数

基本的二维绘图函数有

plot——绘制2维曲线;

title——给图形加标题;

grid——显示网格线;

xlabel——给x轴加标记;

ylabel——给y轴加标记;

text——在坐标图中加入文字注释。

例:

画出函数

,其中

从0到

步进

的曲线图。

X=0:

pi/100:

2*pi;

Y=sin(X);

plot(X,Y);%作图

gridon;%网格线显示,若该为gridoff则不显示网格

ylabel('y=sin2\pix');%Y轴标注,可以有汉字

xlabel('x');%X轴标注,可以有汉字

title('functionploty=sin2\pix');%图标题

text(0.5,sin(0.5),'\leftarrowsin2\pi0.5');%text()可以在指定坐标处写文字标注

text(2.3,sin(2.3),'\leftarrowsin2\pi2.3');%所有标注中均可使用汉字

%对于特殊符号,如希腊字母,箭头等需要采用LaTeX格式

结果如图5.1所示。

图5.1基本的二维绘图函数用法

5.1.2图形的线型和颜色控制

在命令plot的高级用法中,可以设置作图的线型,标记类型,线和标记的颜色,粗细等特征。

用命令docLineSpec和docplot可以查询详细的帮助文档。

线型的定义如下:

-solidline(default)实线

--dashedline虚线

:

dottedline虚点连线

-.dash-dotline点划线

常用标记的定义为:

+plussign十字标记

ocircle小圈标记

*asterisk星号标记

.point黑点标记

xcross叉号标记

ssquare方框标记

ddiamond菱形标记

^upwardpointingtriangle上三角标记

vdownwardpointingtriangle下三角标记

>rightpointingtriangle右三角标记

pfive-pointedstar(pentagram)五角星标记

hsix-pointedstar(hexagram)六角星标记

颜色的定义是:

rred红

ggreen绿

bblue蓝

ccyan兰绿色

mmagenta洋红

yyellow黄

kblack黑

wwhite白

另外,利用线型属性和标记属性可以随心所欲地设计作图图式。

LineWidth定义线的宽度,默认为1

MarkerEdgeColor定义标记的边缘颜色

MarkerFaceColor定义标记面的颜色

MarkerSize定义标记记号的大小

举例1:

t=0:

pi/20:

2*pi;

plot(t,sin(t),'-.r*');%用红色点划线和星号作图

holdon;%保持当前图形不被擦除

plot(sin(t-pi/2),'--bp');%用蓝色虚线和五角星标记作图

plot(sin(t-pi),':

ks');%用黑色虚点线和方框标记作图

holdoff;

结果如图5.2所示(黑白印刷时颜色表现不出来)。

图5.2二维绘图线型和标记的特征控制

(1)

举例2:

t=0:

pi/20:

2*pi;

plot(t,sin(2*t),'-mo',…%线型:

实线,洋红色,小圆标记

'LineWidth',2,…%线宽为2

'MarkerEdgeColor','k',…%标记边缘颜色:

黑色

'MarkerFaceColor',[.491.63],…%标记面颜色:

淡绿

'MarkerSize',12);%标记大小:

12

结果如图5.3所示。

图5.3二维绘图线型和标记的特征控制

(2)

5.1.3图形的标注

图形的标注可以用text函数。

其用法是:

text(x,y,'字符串');text(...'PropertyName',PropertyValue...);

其中,'PropertyName'为字符属性名称,PropertyValue为相应的属性取值。

字符串中若有特殊符号,如希腊字母、箭头等,需要采用LaTeX格式表示。

用doctext_props可以得到详细的用法手册。

对于常用的一些,举例如下:

●改变字符大小。

属性为'FontSize',取值为:

101216…

●改变字符字体。

属性为'FontName',取值为:

'Courier','宋体','黑体'…

●改变字体背景颜色。

属性为'BackgroundColor',取值为:

[R,G,B]和'r','b','k','w'(红,蓝,黑,白)等,参见手册docColorSpec。

命令xlabel,ylabel,title等也可用类似方法修改字体属性。

详见帮助文档。

修改上例为:

X=0:

pi/100:

2*pi;

Y=sin(X);

plot(X,Y,'--r');%用红色虚线作图

gridon;

ylabel('y=sin2\pix','FontSize',14);%Y轴标注,设置了字号

xlabel('x','FontSize',14);%X轴标注,设置了字号

title('functionploty=sin2\pix','FontSize',14);%图标题,设置了字号

text(0.5,sin(0.5),'\leftarrowsin2\pi0.5',...%...为续行号

'FontSize',18,...%字号为18号

'BackgroundColor','w');%背景为白,字符部分将盖住网格线,使字符更清晰

text(2.3,sin(2.3),'\leftarrowsin2\pi2.3','BackgroundColor',[0.80.80.8]);

%'BackgroundColor',[0.70.70.7]使得背景为灰色

结果如图5.4所示。

图5.4修改作图字体属性,线型属性

5.1.4坐标轴的控制方法

Matlab中对作图坐标轴的设置十分灵活,功能十分强大。

用命令docaxes可以获得完整的帮助文档。

与坐标轴设置相关的命令有:

axis,get,set,gca等等。

下面对常用的坐标轴设置作简要介绍。

(1)作图坐标范围设置(axis命令)

axis([xminxmaxyminymax])%用于设置x,y坐标作图范围

axisoff%用于不显示坐标

axison%用于显示坐标(默认)

(2)网格的控制(grid命令等)

gridon%用于显示网格

gridoff%用于不显示网格

set(gca,'XGrid','on')%用于只显示X方向网格

set(gca,'YGrid','on')%用于只显示Y方向网格

set(gca,'GridLineStyle',':

')%用于设置网格的线型,具体如下:

%'-'表示实线;'--'表示虚线;':

'表示虚点线(默认);'-.'表示点划线

(3)坐标轴线型的控制

set(gca,'LineWidth',2)%控制坐标轴线宽度为2(默认为1)

(4)坐标形式的控制

set(gca,'box','on')%用于显示封闭形式的坐标(默认)

set(gca,'box','off')%用于显示开放形式的坐标

(5)坐标刻度方向控制

set(gca,'TickDir','in')%坐标刻度朝内(默认)

set(gca,'TickDir','out')%坐标刻度朝外

(6)坐标颜色控制

set(gca,'Color','y')%坐标面背景颜色设置,本例为:

set(gca,'XColor','k')%设置横坐标轴,刻度,字符的颜色

set(gca,'YColor','r')%设置纵坐标轴,刻度,字符的颜色

(7)坐标刻度字形的控制

set(gca,'FontSize',14)%控制字体大小

set(gca,'FontWeight','bold')%设置字体粗细,有{normal}|bold|light|demi四种

(8)坐标位置和方向控制

set(gca,'XAxisLocation','top')%横坐标轴位于下方(bottom默认)或上方(top)

set(gca,'YAxisLocation','right')%纵坐标轴位于左方(left默认)或右方(right)

set(gca,'XDir','reverse')%横坐标反方向(由右到左为增)

set(gca,'YDir','reverse')%纵坐标反方向(由右到左为增)

(9)坐标刻度线性/对数标度的设置

set(gca,'XScale','log')%横坐标轴位作对数标度

set(gca,'YScale','log')%纵坐标轴位作对数标度

%默认为线性标度'linear'。

%用semilogx()或semilogy(),loglog(),plot()可直接得到对数标度的作图。

(10)坐标刻度数的控制

set(gca,'XTick',[])%横坐标不标度

set(gca,'XTick',[051629])%在横坐标值为0,5,16,29处标度

set(gca,'XTick',[20:

10:

100])%标度从20开始,间隔10标度,直到100

set(gca,'YTick',[])%对纵坐标的标度设置,同上

set(gca,'YTick',[0:

5:

20])

set(gca,'XTickLabel',{'One';'Two';'Three';'Four'})

%将开始的4个刻度依次标记为字符One,Two,Three,Four

%然后循环利用这4个标记将其余刻度全部标完。

set(gca,'YTickLabel',{'One';'Two';'Three';'Four'})

%同上,对纵坐标作标记。

举例1:

JohnG.Proakis著《数字通信》图5.2-4为二元信号的误码概率曲线。

复制如图5.5所示。

其中,两条曲线的计算公式为:

函数的定义是:

现在要求用Matlab生成该图,尽可能做到与原图接近。

作图分析:

观察图5.5,在作图时至少需要:

●曲线使用宽度为2的粗实线,颜色为黑;

●手工确定作图坐标范围并手工作出坐标刻度;

●进行标注,注意标注中需要写入公式等特殊字符,需用LaTeX格式;

●网格线需要设定为细实线;

●横坐标表示每比特SNR,用分贝表示,纵坐标是对数刻度的。

图5.5从《数字通信》图5.2-4复制的原图

作图程序如下:

Q=inline('0.5.*erfc(x./sqrt

(2))','x');%Q函数定义

gama_b_dB=0:

0.5:

14;%横坐标范围(分贝)

gama_b=10.^(gama_b_dB./10);%横坐标范围

Pb1=Q(sqrt(gama_b));%曲线1计算

Pb2=Q(sqrt(2*gama_b));%曲线2计算

plot(gama_b_dB,Pb1,'-k',gama_b_dB,Pb2,'-k','LineWidth',2);%作图,线型为黑实线,宽度2像素

set(gca,'YScale','log');%纵坐标轴位作对数标度

axis([01410e-710e-1]);%手工设置作图范围

xlabel('SNRperbit,\gamma_b(dB)','FontSize',12);%横轴标注,并设定标注字号

ylabel('Probabilityoferror,P_b','FontSize',12);%纵轴标注,并设定标注字号

set(gca,'GridLineStyle','-');%用于设置网格的线型为实线

gridon;%开启网格线

set(gca,'MinorGridLineStyle','none');%将对数分格的虚线去掉

set(gca,'XTick',[0:

2:

14]);%在横坐标值为0,2,4...处标度

%下面是在图中写字

text(2.2,5e-3,'\rho_r=-1',...

'FontSize',12,...

'BackgroundColor','w');

text(2,2e-3,'Antipodal',...

'FontSize',12,...

'BackgroundColor','w');

text(2,1e-3,'signals',...

'FontSize',12,...

'BackgroundColor','w');

text(2,0.4e-3,'P_b=Q(\surd2\gamma_b)',...

'FontSize',12,...

'BackgroundColor','w');

text(10,2e-2,'\rho_r=0',...

'FontSize',12,...

'BackgroundColor','w');

text(10,9e-3,'Orthogonal',...

'FontSize',12,...

'BackgroundColor','w');

text(10,4e-3,'signals',...

'FontSize',12,...

'BackgroundColor','w');

text(10,1.5e-3,'P_b=Q(\surd\gamma_b)',...

'FontSize',12,...

'BackgroundColor','w');

结果如图5.6所示。

图5.6用Matlab作出的曲线图,对比图5.5

举例2:

连续信号及其采样后的离散信号的表示。

任务:

以取样函数

为例,作出该函数在

内的波形图像。

f=inline('sin(x)./x','x');%定义波形函数

x=-10:

0.1:

10;%x的计算范围,步进0.1

y=f(x+1e-16);%计算波形,为避免0/0,x加一微小值

plot(x,y,'--k');%用黑色虚线作图(到此看一看作图结果)

axis([-1010-0.31.1]);%到此作图坐标有何变化?

holdon;%保持前图

boxoff;%坐标盒子打开(看一看坐标有何变化?

sample_time=-10:

1:

10;%设定离散信号的取样间隔为1

y_sample=f(sample_time+1e-16);%计算离散信号样值

h=stem(sample_time,y_sample,'fill','-k');

%stem的用法与plot相同,专门用于画离散信号的火柴杆图

%stem的用法详见docstem帮助

结果如图5.7所示。

图5.7连续信号与离散信号在同一图中作出,注意boxoff的坐标形式

此外,我们还可以进一步对坐标轴标度进行手工设定。

例如将横坐标标度的字符进行任意设置,接上例,如果继续执行以下两句指令:

set(gca,'XTick',[-10:

2.5:

0,4:

4:

10]);%设定标度位置

set(gca,'XTickLabel',{'-10Ts';'-7.5Ts';'-5Ts';'-2.5Ts';'0';'4Ts';'8Ts'});%设定标度的符号

set(gca,'FontSize',14);%设定坐标标注字号

则获得的结果如图5.8所示。

图5.8连续信号与离散信号在同一图中作出,对坐标标度进行了修改

举例3:

其他常用的特殊二维图形的绘制。

利用bar可以作出二维条形图,stairs可以作二维阶梯图。

其用法与plot类似。

t=0:

1/pi:

2*pi;

plot(t,sin(t),'k','LineWidth',2);

holdon;

stairs(t,sin(t),'r');%阶梯图,注意与plot()所得图的区别

%阶梯图常用来表现取样后零阶保持器的输出波形

bar(t,0.5*sin(t),'m');%条形图,注意正弦波幅度减小了

axis([02*pi-1.11.1]);%坐标范围

则获得的结果如图5.9所示。

图5.9正弦波的plot,stairs,bar作图表达的比较

5.1.5用极坐标作图

利用极坐标作图命令polar可以绘制极坐标表达的函数曲线。

例如绘制方程

和方程

theta=0:

0.1:

10*pi;

r=0.001*theta.^2;

polar(theta,r);%作极坐标曲线1并保持

holdon;

t=0:

0.01:

2*pi;

polar(t,sin(2*t).*cos(2*t),'-k');%作极坐标曲线2

得到极坐标图如图5.11所示。

图5.11用命令polar进行极坐标作图

5.2三维图形的绘制

5.2.1三维曲线的绘制

用命令plot3可以进行三维空间曲线的绘制。

plot3的常用格式是:

plot3(X1,Y1,Z1,...)plot3(...,'PropertyName',PropertyValue,...)

详细用法参见docplot3显示的帮助文档。

举例如下,绘制三维曲线:

t=0:

0.01:

15*pi;

x=(10*pi-t).*sin(t);

y=(10*pi-t).*cos(t);

z=t;

plot3(x,y,z,'-k','LineWidth',3);%作图,设定线型

gridon;%看一看,曲线像不像沙发的弹簧?

程序运行结果如图5.12所示。

图5.12三维曲线作图实例

采用命令stem3(x,y,z)可以作出三维火柴杆图。

例如:

t=0:

0.1:

2*pi;

x=(10*pi-t).*sin(t);

y=(10*pi-t).*cos(t);

z=t;

stem3(x,y,z);%作图

gridon;

运行结果为图5.13所示。

图5.13用stem3进行的三维曲线作图实例

5.2.2三维曲面的绘制

Matlab绘制三维曲面的命令有:

(1)mesh(x,y,z)——绘制三维表面网格。

(2)surf(x,y,z)——绘制三维表面图。

这些命令的详细用法请参考帮助文档。

下面举例加以说明。

考虑绘制一个二元函数

为:

其中,绘制范围为

首先用meshgrid函数产生一个

的网格矩阵,即产生一个

轴坐标起始于-3,终止于3,步进为1的;

坐标起始于-2,终止于2,步进为1的网格分割。

其命令是:

>>[x,y]=meshgrid(-3:

1:

3,-2:

1:

2)

x=

-3-2-10123

-3-2-10123

-3-2-10123

-3-2-10123

-3-2-10123

y=

-2-2-2-2-2-2-2

-1-1-1-1-1-1-1

0000000

1111111

2222222

然后将得到的

代入

中计算出

>>z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y)

z=

0.00000.00000.00270-0.049800.0027

0.00000.00730.14940-0.367900.0027

0.00190.14651.10360-0.367900.0004

0.01370.39831.10360-0.049800.0000

0.01370.14650.14940-0.000900.0000

最后用

mesh(x,y,z);

作出三维表面网格图。

得到结果如图5.14所示。

图5.14用mesh进行的三维表面网格作图实例

为了使得作图更加精细,可以减小生成

网格的步进,当然,这是以增加计算量和内存需求为代价的。

[x,y]=meshgrid(-3:

0.1:

3,-2:

0.1:

2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);

mesh(x,y,z);

则得到更精细的结果,如图5.15所示。

图5.15更加精细的三维网格作图实例

利用命令

hiddenoff

可以使得网格“透明”,如图5.16所示。

图5.16显示隐含线的网格图

采用surf(x,y,z)代替mesh(x,y,z)后,则可以绘制出三维表面图形。

如图5.17所示。

图5.17三维表面图

如果使用指令meshc、meshz代替mesh指令,即

[x,y]=meshgrid(-3:

0.1:

3,-2:

0.1:

2);z=(x.^2-2*x).*exp(-x.^2-y.^2-x.*y);

figure

(1);

meshc(x,y,z);

figure

(2);

meshz(x,y,z);

则分别作出带等高线图的以及给出零基准平面的三维网格图。

如图5.18所示。

图5.18(a)命令meshc带等高线的三维图(b)命令meshz给出零基准平面的三维图

如果使用指令surfc、surfl代替surf指令,则分别作出带等高线的三维表面图以及具有光照效果的三维表面图。

如图5.19所示。

[x,y]=meshgrid(-3:

0.1:

3,-2:

0.1:

2);z=(x.^

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1