资源描述
007. 二维绘图(直角坐标)
前言:
Matlab具有强大的绘图功能,提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字说明等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
——————————————————————
二维绘图可以采用不同的坐标系,如直角坐标、极坐标、对数坐标等。
一.绘制二维曲线的基本函数
1. 基本绘图函数——plot()
用于绘制二维平面上的直角坐标图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot(x,y)——x,y为长度相同的向量,存储x坐标和y坐标
例1 在区间,绘制一般曲线
x=0:pi/100:2*pi;
y=2*exp(-0.5*x).*sin(2*pi*x);
plot(x,y)
运行结果:
注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例2 绘制参数方程曲线——星形线: x = a cos3 t ; y = a sin3 t
t = 0:0.01:2*pi;
x = a.*(cos(t)).^3;
y = a.*(sin(t)).^3;
plot(x,y);
运行结果:
例3 绘制参数方程曲线——摆线:
x = a(t – sin t) ; y = a(1 – cos t)
t = 0:0.01:2*pi;
x = a.*(t - sin(t));
y = a.*(1 - cos(t));
plot(x,y);
运行结果:
2.同一坐标图中画多条函数曲线
调用格式为:plot(x1, y1, x2, y2, …, xn, yn)
例4 同一坐标图中画出,,三条曲线。
x =0:pi/50:2*pi;
plot(x,sin(x),x,2*sin(x),x,3*sin(x))
运行结果:
注:利用plot函数可以直接将矩阵的数据绘制图形(矩阵的每一列数据作为一条曲线),例
例5 绘制数据矩阵表示的图形
A=pascal(5)
plot(A)
运行结果: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
3.图形选项设置线型、颜色和数据点标记符号等
线型:- 实线 : 虚线 -. 点划线 -- 双划线
颜色:b蓝色 g绿色 r红色 c青色 m品红
y黄色 k黑色 w白色
标记符号: . 点 o 圆圈 × 叉号 + 加号 * 星号
s 方块 d 菱形 p 五角星 h 六角星
∨ 朝下三角符号 ∧ 朝上三角符号
< 朝左三角符号 > 朝右三角符号
例6 用不同的线型和颜色在同一坐标图内绘制曲线及其上下包络线:
【用黑色虚线画出两条包络线,用蓝色双划线画出曲线y,用红色五角星离散标出数据点】
x=(0:pi/100:2*pi)';
y1=2*exp(-0.5*x)*[1,-1];
y2=2*exp(-0.5*x).*sin(2*pi*x);
x1=(0:12)/2;
y3=2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');
运行结果:
4.绘制出具有不同纵坐标标刻度的两个图形——plotyy()
两个函数绘制在同一个坐标中(横坐标的标度相同,纵坐标有两个——不同量纲不同数量级),有利于图形数据的对比分析。
plotyy(x1,y1,x2,y2)
例7 绘制两个纵坐标图形
x1=0:pi/100:2*pi;
x2=0:pi/100:3*pi;
y1=exp(-0.5*x1).*sin(2*pi*x1);
y2=1.5*exp(-0.1*x2).*sin(x2);
plotyy(x1,y1,x2,y2);
运行结果:
二.绘制图形的辅助操作
1. 图形标注
在绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分的含义等,这些操作称为添加图形标注。有关图形标注函数的调用格式为:
title(’图形名称’)
xlabel(’x轴说明’)
ylabel(’y轴说明’)
text(x, y, ’图形说明’) % 在坐标点(x, y)的位置添加“图形说明”
legend(’图例1’, ’图例2’, …)
注:(1)legend函数用于对绘制曲线所用线型、颜色或数据点标记作图例说明(放置在空白处),用户还可以通过鼠标移动图例,将其放到所希望的位置。
(2)除legend函数外,其他函数同样适用于三维图形,在三维中z坐标轴说明用zlabel函数。
(3)上述函数中的说明文字,除了使用标准的ASCII字符外,还可以使用LaTex格式的控制字符,这样就可以在图形上添加希腊字符,数学符号和公式等内容,受LaTex字符串控制部分要加大括号{ }括起来。
2.坐标控制
在绘制图形时,Matlab可以自动根据要绘制曲线数据的范围选择合适的坐标刻度,使得曲线能够尽可能清晰的显示出来。
但是,如果用户对坐标不满意,可以利用axis函数对其重新设定:
axis([xmin xmax ymin ymax])
注:绘制出三维图形,需要再加两个参数zmin,zmax
axis函数其他用法:
axis equal :纵横坐标轴采用等长刻度
axis square:产生正方形坐标系(默认为矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on :显示坐标轴
此外,给坐标加网格线可以用grid命令来控制,grid on/off命令控制画还是不画网格线,不带参数的grid命令在两种之间进行切换。
给坐标加边框用box命令控制(用法同grid)
例8 绘制分段函数,并做适当图形标注
x=0:0.1:10;
y=[];
for x0=x
if x0>=8
y=[y,1]; %y=1
elseif x0>=6
y=[y,5-x0/2]; %y=5-x/2
elseif x0>=4
y=[y,2]; %y=2
elseif x0>=0
y=[y,sqrt(x0)]; %y=sqrt(x)
end
end
plot(x,y)
axis([0 10 0 2.5])
title('分段函数曲线');
xlabel('Variable x');
ylabel('Variable y');
text(2,1.3,'y=x^{1/2}');
text(4.5,1.9,'y=2');
text(7.3,1.5,'y=5-x/2');
text(8.5,0.9,'y=1');
运行结果:
3.图形保持(常用于同一坐标图下同时绘制多条函数曲线)
Matlab默认每执行一次绘图命令,就刷新一次当前图形窗口,图形窗口原有图形将不复存在,如果希望在已经存在的图形上再继续添加新的图形,可以使用图形保持命令hold. hold on/off 命令是保持原有图形还是刷新原有图形,不带参数的hold命令在两者之间进行切换。
4.图形窗口分割(子图)——subplot()
Matlab提供了subplot函数用来将当前窗口分割成若干个绘图区,每个区域代表一个独立的子图(使用独立的坐标系),可以通过subplot函数激活某一区为活动区,其绘图命令都是作用于该活动区域。调用格式:subplot(m, n, p)
该函数把当前窗口分成m×n个绘图区(m行, n列),按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。
例9 绘制2×2子图
x=0:pi/30:2*pi;
y=sin(x);
z=cos(x);
t=sin(x)./(cos(x)+eps);
ct=cos(x)./(sin(x)+eps);
subplot(2,2,1);
plot(x,y)
title('sin(x)');
axis([0,2*pi,-1,1]);
subplot(2,2,2);
plot(x,z)
title('cos(x)');
axis([0 2*pi -1 1]);
subplot(2,2,3);
plot(x,t)
title('tg(x)');
axis([0 2*pi -40 40]);
subplot(2,2,4);
plot(x,ct)
title('ctg(x)');
axis([0 2*pi -40 40]);
运行结果:
展开阅读全文