您的位置:首页 > 编程语言 > MATLAB

MATLAB图像生成函数Plot()总结

2015-05-05 21:59 483 查看
一、基本形式

(1)>> y=[0 0.58 0.70 0.95 0.83 0.25];

>> plot(y)

生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。

(2)>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值

>> y=sin(x);

>> plot(x,y)

生成的图形是上30个点连成的光滑的正弦曲线。

二、多重线

(1)在同一个画面上可以画许多条曲线,只需多给出几个数组:

>> x=0:pi/15:2*pi;

>> y1=sin(x);

>> y2=cos(x);

>> plot(x,y1,x,y2)

(2)利用hold命令。在已经画好的图形上,若设置hold on,MATLA将把新的plot命令产生的图形画在原来的图形上。而命令hold off 将结束这个过程。例如:

>>x=linspace(0,2*pi,30); y=sin(x); plot(x,y)

>>hold on

>>z=cos(x); plot(x,z)

>>hold off

三、线型和颜色

MATLAB对曲线的线型和颜色有许多选择,标注的方法是在每一对数组后加一个字符串参数,说明如下:

(1)线型线方式: - 实线 :点线-. 虚点线 - - 波折线。

(2)线型点方式: . 圆点 +加号* 星号 x x形 o 小圆

(3)颜色: y黄; r红; g绿; b蓝; w白; k黑; m紫; c青.

以下面的例子说明用法:

>>x=0:pi/15:2*pi;

>>y1=sin(x); y2=cos(x);

>>plot(x,y1,’b:+’,x,y2,’g-.*’)

四、改变坐标轴

(1)网格和标记

在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。

>>x=linspace(0,2*pi,30); y=sin(x); z=cos(x);

>>plot(x,y,x,z)

>>grid

>>xlabel(‘Independent Variable X’)

>>ylabel(‘Dependent Variables Y and Z’)

>>title(‘Sine and Cosine Curves’)

(2)在坐标轴加字符:

>>text(2.5,0.7,’sinx’)

表示在坐标x=2.5, y=0.7处加上字符串sinx。更方便的是用鼠标来确定字符串的位置,方法是输入命令:

>>gtext(‘sinx’)

在图形窗口十字线的交点是字符串的位置,用鼠标点一下就可以将字符串放在那里。

(3)坐标系的控制

在缺省情况下MATLAB自动选择图形的横、纵坐标的比例,如果你对这个比例不满意,可以用axis命令控制,常用的有:

axis([xminxmax ymin ymax]) [ ]中分别给出x轴和y轴的最大值、最小值

axisequal 或 axis(‘equal’) x轴和y轴的单位长度相同

axissquare 或 axis(‘square’) 图框呈方形

axisoff 或 axis(‘off’) 清除坐标刻度

还有axis autoaxis image axis xy axis ij axis normal axis on axis(axis)

用法可参考在线帮助系统。

五、多幅图形

(1)可以在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n个图形区域, p代表当前的区域号,在每个区域中分别画一个图,如

>> x=linspace(0,2*pi,30); y=sin(x);z=cos(x);

>> u=2*sin(x).*cos(x);v=sin(x)./cos(x);

>> subplot(2,2,1),plot(x,y),axis([02*pi –1 1]),title(‘sin(x)’)

>> subplot(2,2,2),plot(x,z),axis([02*pi –1 1]),title(‘cos(x)’)

>> subplot(2,2,3),plot(x,u),axis([02*pi –1 1]),title(‘2sin(x)cos(x)’)

>> subplot(2,2,4),plot(x,v),axis([02*pi –20 20]),title(‘sin(x)/cos(x)’)

(2)图形的输出

在数学建模中,往往需要将产生的图形输出到Word文档中。通常可采用下述方法:

首先,在MATLAB图形窗口中选择【File】菜单中的【Export】选项,将打开图形输出对话框,在该对话框中可以把图形以emf、bmp、jpg、pgm等格式保存。然后,再打开相应的文档,并在该文档中选择【插入】菜单中的【图片】选项插入相应的图片即可。

基本xy平面绘图命令
MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization)。本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制、列印及存档。

plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标。下例可画出一条正弦曲线:

closeall; x=linspace(0, 2*pi, 100); % 100个点的x座标

y=sin(x); % 对应的y座标

plot(x,y);



小整理:MATLAB基本绘图函数

plot: x轴和y轴均为线性刻度(Linear scale)

loglog: x轴和y轴均为对数刻度(Logarithmic scale)

semilogx: x轴为对数刻度,y轴为线性刻度

semilogy: x轴为线性刻度,y轴为对数刻度

若要画出多条曲线,只需将座标对依次放入plot函数即可:

plot(x,sin(x), x, cos(x));



若要改变颜色,在座标对後面加上相关字串即可:

plot(x,sin(x), 'c', x, cos(x), 'g');



若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字串即可:

plot(x,sin(x), 'co', x, cos(x), 'g*');



小整理:plot绘图函数的叁数

 

字元

颜色

字元

图线型态
 

y

黄色

.



 

k

黑色

o



 

w

白色

x

x

 

b

蓝色

+

+

 

g

绿色

*

*

 

r

红色

-

实线

 

c

亮青色

:

点线

 

m

锰紫色

-.

点虚线

 

 

 

--

虚线

图形完成後,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:

axis([0,6, -1.2, 1.2]);



此外,MATLAB也可对图形加上各种注解与处理:

xlabel('InputValue'); % x轴注解

ylabel('Function Value'); % y轴注解

title('Two Trigonometric Functions');% 图形标题

legend('y = sin(x)','y = cos(x)'); % 图形注解

grid on; % 显示格线



我们可用subplot来同时画出数个小图形於同一个视窗之中:

subplot(2,2,1);plot(x, sin(x));

subplot(2,2,2); plot(x, cos(x));

subplot(2,2,3); plot(x, sinh(x));

subplot(2,2,4); plot(x, cosh(x));



MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。

小整理:其他各种二维绘图函数

 

bar

长条图

 

errorbar

图形加上误差范围

 

fplot

较精确的函数图形

 

polar

极座标图

 

hist

累计图

 

rose

极座标累计图

 

stairs

阶梯图

 

stem

针状图

 

fill

实心图

 

feather

羽毛图

 

compass

罗盘图

 

quiver

向量场图

以下我们针对每个函数举例。

当资料点数量不多时,长条图是很适合的表示方式:

closeall; % 关闭所有的图形视窗

x=1:10;

y=rand(size(x));

bar(x,y);



如果已知资料的误差量,就可用errorbar来表示。下例以单位标准差来做资料的误差量:

x =linspace(0,2*pi,30);

y = sin(x);

e = std(y)*ones(size(x));

errorbar(x,y,e)



对於变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:

fplot('sin(1/x)',[0.02 0.2]); % [0.02 0.2]是绘图范围



若要产生极座标图形,可用polar:

theta=linspace(0,2*pi);

r=cos(4*theta);

polar(theta, r);



对於大量的资料,我们可用hist来显示资料的分 情况和统计特性。下面几个命令可用来验证randn产生的高斯乱数分 :

x=randn(5000,1); % 产生5000个 =0,=1 的高斯乱数

hist(x,20); % 20代表长条的个数



rose和hist很接近,只不过是将资料大小视为角度,资料个数视为距离,并用极座标绘制表示:

x=randn(1000,1);

rose(x);



stairs可画出阶梯图:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stairs(x,y);



stems可产生针状图,常被用来绘制数位讯号:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

stem(x,y);



stairs将资料点视为多边行顶点,并将此多边行涂上颜色:

x=linspace(0,10,50);

y=sin(x).*exp(-x/3);

fill(x,y,'b'); % 'b'为蓝色



feather将每一个资料点视复数,并以箭号画出:

theta=linspace(0,2*pi, 20);

z = cos(theta)+i*sin(theta);

feather(z);



compass和feather很接近,只是每个箭号的起点都在圆点:

theta=linspace(0,2*pi, 20);

z = cos(theta)+i*sin(theta);

compass(z);



Specifying Tick-Mark Location and Labeling

You can adjust the axis tick-mark locationsand the labels appearing at each tick. For example, this plot of thesine function relabels the x-axis with more meaningful values:

x = -pi:.1:pi;

y = sin(x);

plot(x,y)

set(gca,'XTick',-pi:pi/2:pi)

set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: