MATLAB的图形通常都是通过描点、连线的方式来实现的。通过提供关键位置的点坐标及点与点之间的具体链接方式实现图形绘制。
同时支持在同一张图片上绘制多个图形,为了区别不同的图形,可用不同的颜色、大小、形状与链接方式来区分不同的图形。
二维图形的绘制
因MATLAB的图形是通过描点、连线来实现的,故在绘制简单平面图形时需要提供图形上的一系列点的横纵坐标,然后将这些点链接起来。其具体图形绘制命令为:
plot(X,Y,’S’)
其中X,Y是向量,分别是由所有点的横坐标和纵坐标构成的向量,S是一字符串,用于确定线的颜色,点的绘制形状及点与点的链接方式。
matlab隐函数绘图通过在命令窗口中输入help plot命令可以查看S的具体编写方式。Y有时可以是一矩阵,届时将对同一自变量绘制多条曲线。
例
以向量y=(1,2,5,4.5,3,6,1)的各个分量为纵坐标,分量序号为横坐标绘制顺序连接线。
解:输入命令
y=1 2 5 4.5 3 6 1;
plot(y)
例
画出一条正弦曲线和一条余弦曲线。
>>x=0:pi/10:2*pi; %构造向量
>>y1=sin(x); %构造对应的y1坐标
>>y2=cos(x); %构造对应的y2坐标
>>plot(x,y1,x,y2) %画出一个以x为横坐标,y1,y2为纵坐标的图形
注意
①构造向量采用了所谓的冒号法,格式为
向量名=初值:步长:终值 %步长为1时可以省略。
②plot是针对向量或矩阵的列来绘制曲线的,也就是说,使用plot之前必须首先定义好曲线上每一点的x坐标和y坐标。
③在上述的格式中,x和y都可以是表达式。
④如果自变量的间隔取得比较大,光滑的曲线就会显示出折线的本来面貌。
例
matlab初学者教程某次考试学生成绩优秀的占8%,良好的占20%,中等的占36%,及格的占24%,不及格的占12%。分别用饼图和条形图表示。
解:
x=8 20 36 24 12;
subplot(221);pie(x,1 0 0 0 1);
title('饼图');
subplot(222);bar(x,'grpup');
title('垂直条形图');
subplot(223);bar(x,'stack');
title('累加值为纵坐标的垂直条形图');
subplot(224);barh(x,'group');
title('水平条形图');
关于曲线控制命令
在使用plot等命令绘制曲线时可以指定曲线的颜色、线型和数据点图标。基本的调用格式为
plot(x,y,'color line-style marker')
注意
①颜色、线型、标记三种属性的符号必须放在同一个字符串内。
②属性的先后顺序没有关系,可以只指定一两个属性,也可以全部缺省,但同种属性不能同时指定两个。
③颜色缺省为蓝色。
④点、线标识符缺省为实线。
⑤属性间不用间隔。
例
用红色、点连线、叉号画出正弦曲线。
>>x=0:0.2:8;
>>y=sin(x);
>>plot(x,y,'r:x')
关于图形的标注命令
例
给上述例子的图形加入网格和标注。
>>x=0:pi/10:2*pi;
>>y1=sin(x);
>>y2=cos(x);
>>plot(x,y1,x,y2)
>>grid on %添加网格
>>xlabel(‘x轴’) %横坐标名
>>ylabel(‘y轴’) %纵坐标名
>>title(‘正弦函数和余弦函数曲线’) %标题
>>text(1.5,0.3,’cos(x)’) %指定位置标注
>>gtext(‘sin(x)’) %用鼠标选择位置标注
>>axis(0 2*pi -1.2 1.2 %设置坐标轴的最大值最小值
✔ hold on(/off) 保持绘图命令
✔ subplot(n,m,k) 将图形窗口分成n行m列个格子,在第k个格子绘图,格子按从上到下依行计数。
例
在同一个窗口中,使用两次plot函数,绘制两条曲线。
>>x=0:0.2:12;
>>plot(x,sin(x),’-’)
>>hold on
>>plot(x,cos(x),’:’)
例
把当前窗口分割成四个区域,绘制四条函数曲线。
>>x=0:0.05:8;
>>y1=2*sin(x);
>>y2=2*cos(x);
>>y3=sin(2*x);
>>y4=cos(2*x);
>>subplot(2,2,1);
>>plot(x,y1);
>>title(‘2sinx’)
>>subplot(2,2,2);
>>plot(x,y2);
>>title(‘2cosx’)
>>subplot(2,2,3);
>>plot(x,y3);
>>title(‘sin2x’)
>>subplot(2,2,4);
>>plot(x,y4);
>>title(‘cos2x’)
三维图形的绘制
在MATLAB中绘制三维曲线的命令为
plot3(x,y,z,’S’)
其中x,y,z分别为点的横、纵及竖坐标,S为字符串,matlab四维图与二维图形的绘着字符串类似。
在MATLAB中绘制三维箭头函数
quiver3(x,y,z,u,v,w)
例
试绘制
的图形。
解
在命令窗口中录入如下命令,即可获得如图所示的图形。
t=0:0.01:10*pi;
x=sin(t);
y=cos(t);
plot3(x,y,t,'g');
绘制三维曲面的命令则有 mesh(x,y,z)或surf(x,y,z)。 它们的区别在于,前者绘制出的是一个用网格近似的曲面,后者绘制出的是一个真正表面图。
例
绘制多峰函数图。
>>z=peaks(40);
>>mesh(z);
>>surf(z);
peaks称为多峰函数,常用于三维曲面的演示。
例
试绘制z=x²-y²的图形。
解
首先取定横纵坐标,输入如下命令
x=-10:0.5:10;
y=-10:0.5:10;
其次利用meshgrid命令生成横纵交叉网格坐标,具体命令如下:
xx,yy=meshgrid(x,y)
最后生成竖坐标并作图。具体命令如下:
z=xx.^2-yy.^2;
mesh(xx,yy,z);
图形的修饰
(1) 坐标轴与图形名命名
通过以下命令可实现对坐标轴及图形的命名
xlabel(‘具体名称’)
ylabel(‘具体名称’)
zlabel(‘具体名称’)
title (‘具体名称’)
(2) 增加网格
通过grid on或grid off命令实现增加网格或删除网格。
(3) 图形中增加修饰
为了在图形中增加文字来实现对图形的修饰,可通过gtext(‘string’)来实现对图形的修饰。当运行gtext命令时,屏幕中会出现一个交叉的十字,将该十字移动到指定的位置并按下左键时,所标注的字符串就将会放置到该位置。