MATLAB二维绘图技巧.docx
《MATLAB二维绘图技巧.docx》由会员分享,可在线阅读,更多相关《MATLAB二维绘图技巧.docx(19页珍藏版)》请在冰豆网上搜索。
MATLAB二维绘图技巧
MATLABX维图形绘图入门技巧
、plot函数
l.plot函数的基本应用格式:
plot(x,y)%x,y为长度相同的向量,存储x坐标和y坐标。
绘图时数据需要对应排序好。
例51
>>x=0:
pi/100:
2*pi;
>>y=2*exp(-0.5*x).*sin(2*pi*x);
>>plot(x,y)
注意:
指数函数和正弦函数之间要用点乘运算,因为二者是向量。
1.5
0.5
-0.5
-1.5
例52
>>t=-pi:
pi/100:
pi;
>>x=t.*cos(3*t);
>>y=t.*sin(t).*sin(t);
>>plot(x,y)
1.5
1
0.5
0
-0.5
-1
-1.5
以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
2.含多个输入参数的plot函数
plot函
plot函数可以包含若干组向量对,每一组可以绘制出一条曲线。
含多个输入参数的数调用格式为:
plot(x1,y1,x2,y2,…,xn,yn)
如下列命令可以在同一坐标中画出3条曲线。
>>x=linspace(0,2*pi,100);
>>plot(x,sin(x),x,2*sin(x),x,3*sin(x))
-30
2
1
0
-1
-2
1
2
3
4
5
6
7
当输入参数有矩阵形式时,数等于矩阵的列数。
>>x=linspace(0,2*pi,100);
>>y1=sin(x);
>>y2=2*sin(x);
>>y3=3*sin(x);
>>x=[x;x;x]';
>>y=[y1;y2;y3]';
>>plot(x,y,x,cos(x))
x,y都是含有三列的矩阵,它们组成输入参数对,绘制三条曲线;x和cos(x)又组成一对,
绘制一条余弦曲线。
3]「rqp|
2._
1,-
0・'、\/、・
-1._i
-2.
-3,JLL」-■LI,
01234567
注:
linspace是Matlab中的一个指令,用于产生指定围的指定数量点数,相邻数据跨度相
同,并返回一个行向量。
调用方法:
linspace(x1,x2,N)。
功能:
用于产生x1,x2之间
的N点行矢量,相邻数据跨度相同。
其中x1、x2、N分别为起始值、终止值、元素个数。
若缺省N,默认点数为100。
举例如下:
>>X=Iinspace(5,100,20)%产生从5到100围的20个等分数据
X=
5101520253035404550556065707580859095100
ps:
这和X=[5:
5:
100]的效果是一样的。
3.plot函数画矩阵
利用plot函数可以直接将矩阵的数据绘制在图形窗体中,
此时plot函数将矩阵的每一列数
据作为一条曲线绘制在窗体中。
如
>>A=pascal(5)
A=
1
1
1
1
1
1
2
3
4
5
1
3
6
10
15
1
4
10
20
35
1
5
15
35
70
>>plot(A)
70
60
50
40
30
20
10
1.522.533.544.55
0
注:
帕斯卡矩阵:
由辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵。
辉三角形表是二次项(x+y)M展开后的系数随自然数n的增大组成的一个三角形表。
如4阶帕斯卡矩阵为:
Pascal(4)=
[1111
1234
13610
141020]
pascal(n)是矩阵实验室(MatrixLaboratory)MATLAB^的命令,利用pascal()命
令可以在矩阵实验室中方便的得到任意阶帕斯卡矩阵。
设A为帕斯卡矩阵,则在MATLAB
命令窗口中输入A=pascal(n),n为正整数,可得到阶数为n的帕斯卡矩阵。
4.plot函数生成的图像设置
Matlab提供了一些绘图选项,用于确定所绘曲线的线型、颜色和数据点标记符号。
这些选项如表所示:
线型
颜色
标记符号
-实线
b蓝色
占
■八、、
s方块
:
虚线
g绿色
字母o圆圈
d菱形
-.点划线
r红色
字母x叉号
V朝下三角符号
--双划线
c青色
+加号
人朝上三角符号
m品红
*星号
<朝左三角符号
y黄色
>朝右三角符号
k黑色
p五角星
w白色
h六角星
例用不同的线型和颜色在同一坐标绘制曲线及其包络线。
>>x=(0:
pi/100:
2*pi):
%瞰号表示对矩阵进行转置
>>y1=2*exp(-0.5*x)*[1,-1];
>>y2=2*exp(-0.5*x).*sin(2*pi*x);
>>x仁(0:
12)/2;
>>y3=2*exp(-0.5*x1).*sin(2*pi*x1);
>>plot(x,y1,'k:
',x,y2,'b--',x1,y3,'rp');
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
在该plot函数中包含了3组绘图参数,第一组用黑色虚线画出两条包络线,第二组用蓝色双划线画出曲线y,第三组用红色五角星离散标出数据点。
几组例子:
图例
指令
Y=[1,3,6,5,9,0,2];
plot(Y);
X=0:
pi/10:
pi*2;
Y=sin(X);
plot(X,Y);
X=0:
pi/10:
pi*2;丫仁sin(X);
Y2=cos(X);
Plot(X,Y1,X,Y2);
指令
Y=[1,3,6,5,9,0,2];
plot(Y,'r-+');
X=0:
pi/10:
pi*2;
Y=sin(X);
plot(X,Y,'b-.');
X=0:
pi/10:
pi*2;丫仁sin(X);Y2=cos(X);
plot(X,Y1,'r+-',X,Y2,'b-*');
对plot函数生成的图像进行线宽、字体等设置
plot(X1,Y1,LineSpec,'PropertyName',PropertyValue)
对plot生成的图形对象,用指定的properties进行设置。
PropertyName
指定,r,g,b取0和1之间的数值。
LineWidth
线宽
LineStyle
线型
Marker
点标记
MarkerEdgeColor点标记边框的颜色
MarkerFaceColor点标记面积的颜色
MarkerSize
点标记的大小
Color非标准颜色可用[r,g,b]
例
X=0:
1:
20;
Y=sin(X);
plot(X,Y,'--rs','linewidth',2,'MarkerEdgeColor'
ze',10);
'k','MarkerFaceColor'
'g','MarkerSi
0.8
Cl
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
Ir
If
il・|口b・
2468
10匸1214161820
X=0:
1:
20;
Y=sin(X);
plot(X,Y,'--kx','linewidth',5,'MarkerEdgeColor','b','MarkerFaceColor'
ze',20);
'r','MarkerSi
上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex(—种流行的数
学排版软件)格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等容。
在Matlab支持的LaTex字符串中,用/bf,/it,/rm控制字符分别定义黑体、斜体和正
体字符,受LaTex字符串控制部分要加大括号{}括起来。
例如,text(0.3,0.5,'theusful
{/bfMATLAB}),将使MATLAB^词黑体显示。
一些常用的LaTex字符见表,各个字符可以
单独使用也可以和其他字符及命令配合使用。
如
text(0.3,0.5,'sin({/omega}t+{/beta})')
常用的希腊字母等特殊字符用加拼音如:
后字母大写的,表示是大写(如Q\Omega),小字母的,表示小写(如3\omega)
<<\ll>>\gg
标识符
符号
标识符
符号
标识符
符号
/alpha
/epsilon
£
/ingty
/beta
3
/eta
n
/int
/gamma
Y
/Gamma
r
/partial
/delta
S
/Delta
A
/leftarrow
左箭头
/theta
0
/Theta
/rightarrow
右箭头
/lambda
入
/Lambda
人
/downarrow
下箭头
/xi
E
/Xi
S
/uparrow
上箭头
/pi
n
/Pi
n
/div
除号
/omega
3
/Omega
Q
/times
叉乘
/sigma
(T
/Sigma
/pm
+
/phi
/Phi
①
/leq
<
/psi
/Psi
¥
/geq
>
/rho
/tau
T
/neq
不等于
/mu
□
/zeta
Z
/forall
/nu
u
/chi
x
/exists
在Matlab中输入上标、下标、特殊符号或字体:
上标用A(指数),下标用_(下划线)
输下标:
_{wb}
输上标:
a{0.5}
调用方式为:
a{任意字符},_{任意字符},注意{}的使用!
figure,title('\zetaA{-t}sint');
壮mt
1r
09-
OB
figure,title('x~{\chi}_{\alpha}A{2}(3)');
、坐标轴设置
1.坐标轴名称
格式:
xlabel(‘string')
Ylabel(‘string')
%分别给x轴和y轴添加标签
2.围设置:
a.
axis([-0.1,8.1,-1.1,
axis([xminxmaxyminymax])设置坐标轴在指定的区间。
1.1]);%坐标轴的显示围
b.axisauto将当前绘图区的坐标轴围设置为MATLAB动调整的区间
c.axismanual冻结当前坐标轴围,以后叠加绘图都在当前坐标轴围显示
d.axistight采用紧密模式设置当前坐标轴围,即以用户数据围为坐标轴围比例。
e.axisequal等比例坐标轴
f.axissquare以当前坐标轴围为基础,将坐标轴区域调整为方格形
g.axisnormal自动调整纵横轴比例,使当前坐标轴围的图形显示达到最佳效果
围选项和比例设置可以联合使用,默认的设置为axisautonormal
h.axisoff;
i.axistight;
%去掉坐标轴
%紧坐标轴
3.坐标轴其他参数设置:
x=-pi/2:
0.01:
pi;
先绘制个基本图形
轴的数据显示围
轴的记号点
plot(x,sin(x))%
%gca:
gca,h=figure(...);
set(gca,'XLim',[-pi/2pi]);%Xset(gca,'XTick',[-pi/2:
pi/4:
pi]);%X
set(gca,'XTick',[]);%消除X轴的记号点
set(gca,'XTickLabel',{'-pi/2''-pi/4:
''O''pi/4''pi/2''pi*3/4”pi'})%X的记号
Roman','FontSize',14,'FontWeight','bold')
注:
gca是用来返回当前axes(坐标图)对象的句柄
plot(rand(2,1))%画一图
set(gca,'xgrid','on')%gca表示当前的图,此时x轴添加了网格线4.坐标轴加网格线和边框
命令控制画还是不画网格线,不带
给坐标加网格线可以用grid命令来控制,gridon/off
参数的grid命令在两种之间进行切换。
给坐标加边框用box命令控制。
和grid一样用法
三、图像控制
1.迭加绘图
<1>holdon%保留当前图像与当前坐标轴的属性值,使用后面的图形命令只能在当前存
在的坐标轴中增加图形。
<2>holdoff%
<3>hold%
<4>holdall%
在绘制新图形之前,重新设置坐标轴的属性为默认值,关闭holdon
在on和off之间切换,即在增加图形和覆盖图形之间切换。
保留当前颜色和线型,在绘制随后的图形时使用当前颜色和线型。
2.清空图像
clf%清除所有当前图像窗口
3.图名
4.
4.图片大小以及线宽和字号命令
(以上几个将图例标识放在框图外)
'Best'图标标识放在图框不与图冲突的最佳位置
'BestOutside'图标标识放在图框外使用最小空间的最佳位置
还是用上面的例子
legend('sin','cos','location','northwest')可以将标识框放置在图的左上角。
6.多子图
在同一图形框布置几幅独立的子图。
格式:
subplot(m,n,k)%将一个图形窗口分成m*n个小窗口(子图),k是子图的编号
序号原则是:
左上方的为第一幅,然后向右、向下依次排好。
subplot(‘Position',[leftbottomwidthheight])坐标轴。
x=-4:
0.1:
4;
subplot(2,2,1);
y1=1/sqrt(2*pi)*exp(-1/2*x.A2),
plot(x,y1);
xlabel('变量x'),ylabel('变量密度y'),title('
subplot(2,2,2);
y2=1/sqrt(2*pi)/2*exp(-1/2/4*x.A2),
plot(x,y2);
xlabel('变量x'),ylabel('概率密度y')
title('正太分布N(0,4)');
subplot(2,2,3);
y3=1/sqrt(2*pi)/0.5*exp(-1/2/(0.5A2)*(x-1).A2);plot(x,y3);
xlabel('变量x'),ylabel('概率密度y'),title('subplot(2,2,4);
y4=1/sqrt(2*pi)/0.5*exp(-1/2/(0.5A2)*(x+1).A2),
plot(x,y4)
xlabel('变量x'),ylabel('概率密度y'),title('
%在由4个元素指定的位置上创建
正太分布N(0,1)');
正太分布N(1,1/4)');
正太分布N(-1,1/4)')
OA
0.3
02
01
0
4
正太片布叫0月
-202
正东分布Hi3)
*202
OBr
04
02
7.多个图形窗口
6G4zoGGQ
格式:
Figure(n)%创建新的图形窗口或显示当前图形窗口。
口的编号,figure
(1)是默认值,不需要声明。
n是这个窗
>>t=-4:
0.1:
4;x=sin(t);plot(t,x,'b")
>>t=-4:
0.1:
4;x=sin(t);plot(t,x,'bA')
>>xlabel('t');ylabel('x');title('
>>figure
(2)
>>y=cos(t);plot(t,y,'kp');
>>xlabel('t');ylabel('y');title('
>>figure(3)
函数x=sint的图形');
函数y=cost的图形');
>>z=sin(t).*cos(t);plot(t,z,'kh')
bU曹
融計蠶=frrtf@K-
iSfe—
A
D
12G_IGl|_S_l
EURJ£iewJnseHJocJsQeikfcp脸品Hf-lp・
□til
d丄$…gQ□□
||
到H|^C4ft60團黑
/\
t
tt
■»
a世
fr■
9«
**
a«
■•
・・
11
ft■
irt
i宝
4)5
t1T
aii
i
w离*
|
v\.v
j
1402J
5
0
8.text函数
text(x,y,'图形说明')
text函数是在坐标点(x,y)处添加图形说明例
text(3.5,0.6,'曲线比较');
x=[1.6*pi,1.6*pi];y=[-0.3,0.8];
s=['曲线cos';'曲线sin'];text(x,y,s);