matlab学习笔记|二维图形绘制

Posted by wzc on 2020-08-24

二维图形绘制

1、二维曲线的绘制

1.1 Figure命令

​ figure:创建一个图形窗口

​ figure(n):创建一个编号为Figure(n)的图形窗口,其中n是一个正整数,表示图形窗口的句柄

​ figure(‘PropertyName’,’PropertyValue’,…):对指定的属性PropertyName,用指定的属性值ProtertyValue(属性名和属性值成对出现)创建一个新的图形窗口;对于那些没有指定的属性,则用默认值。

​ close命令:关闭图形窗口

​ clf命令:将窗口内容清空

1.2 plot命令

​ 基本的绘图命令,也是最常用的绘图命令。当执行plot命令时,系统自动创建一个新的图形窗口,如果之前已经有窗口打开,那么系统会将图形画在最近打开的图形窗口上,原有图形也将被覆盖。

​ plot(x):

​ 当x是实向量时,则绘制出以该向量元素的下标(1,2,3…)为横坐标,以该向量元素的值为纵坐标的一条连续曲线。

​ 当x是实矩阵时,按列绘制出每列元素值相对齐下标的曲线,曲线数等于x的列数。

​ plot(x,y):

​ 当x,y是同维向量时,绘制以x为横坐标、以y为纵坐标的曲线。

​ 当x是向量时,y有一维与x等维的矩阵时,绘制出多根不同颜色的曲线,曲线数等于y矩阵的另一维数,x作为这些曲线的横坐标。

​ 当x、y是同维矩阵时,以x对应的列元素为横坐标,以y对应的列元素为纵坐标分别绘制曲线,曲线数等于矩阵的列数。

​ plot(x1,y2,x2,y2,…)

​ 绘制多条曲线,x、y必须成对出现,等价于逐次执行plot(x,y)命令

例:

​ 在图形窗口中显示函数y=sinx+cosx在已知的区间[1,2pi]100等分取值计算的结果。

  • 输入[1,2pi]区间的x向量
  • 输入函数公式
  • 利用绘图命令plot(x,y)绘图
1
2
3
x=[1:pi/50:2*pi];
y=sin(x)+cos(x);
plot(x,y)

1.3多图形显示

​ 1.3.1图形分割

​ subplot(m,n,p)

​ 将当前窗口分割成mxn个视图区域,并指定第p个视图为当前视图。

​ 1.3.2图形叠加

​ 一般情况下,绘图命令每执行一次就刷新当前图形窗口,图形窗口将不显示旧的图形,但若有特殊需要,在旧的图形上叠加新的图形,可以使用图形保持命令hold,图形保持命令hold on/off控制原有的图形的保持与不保持。

1
2
3
4
5
6
7
8
9
10
x=1:2:16;			
y=x./2;
plot(x,y); %显示图形1
hold on; %打开保持命令
y2=cos(pi*x./10);
plot(x,y2); %叠加图形1、图形2
y3=x+2;
plot(x,y3); %未输入保持关闭命令,继续叠加显示图形3
hold off; %关闭保持命令。单独显示图形
plot(x,y3);

实例:

随机生成一个行向量a以及一个实方阵b,并作出a,b两幅图像

1
2
3
4
a=rand(1,10);
b=rand(5,5);
subplot(1,2,1),plot(a)
subplot(1,2,2),plot(b)

1.4函数图形的绘制

​ 1.4.1一元函数绘制

​ fplot命令是专门用于绘制图像的命令。plot命令也可以画一元函数图像,两者的区别是:

plot命令是根据给定的数据点来作图,而在实际情况中,一般不清楚函数的具体情况,因此依据所选取的数据点绘制的图像可能会忽略真实函数的某些重要特性,给科研工作造成不可估计的损失。

fplot命令用来指导数据点的选取,通过其内部适应算法,在函数变化比较平稳处,它所选取的数据点就会相对疏松一点,在函数变化比较明显处选取的数据点就会比较自动密集一些,因此使用fplot命令所做出的图像比用plot命令作出的图像光滑准确。

​ 1.4.2符号函数的绘制

​ 对于符号函数,matlab提供了专门的绘图命令——ezplot命令。利用这个命令可以很容易的将一个符号函数图形化。

​ 例:

​ 绘制隐函数image-20200202165843824的图像

1
2
3
4
5
6
syms x;
f1=exp(2*x)*sin(2*x);
subplot(2,2,1),ezplot(exp(2*x),[-pi,pi])
subplot(2,2,2),ezplot(sin(2*x))
subplot(2,2,3),ezplot(exp(2*x)+sin(2*x),[-pi,pi,0,2*pi])
subplot(2,2,4),ezplot(f1,[-4*pi,4*pi])

​ 1.4.3设置曲线的样式

​ 曲线一律采用“实线”线型,不同曲线蓝、绿、红、青、品红、黄、黑顺序着色。

2、图形注释

​ lMATLAB中提供了一些常用的图形标注函数,利用这些函数可以为图形添加标题,为图形的坐标轴加标注,为图形加图例,也可以把说明、注释等文本放到图形的任何位置。

(1)注释图形标题及轴名称

  • title命令使用

    调用格式 说 明
    title(‘string’) 在当前坐标轴上方正中央放置字符串string作为图形标题
    title(fname) 先执行能返回字符串的函数fname,然后在当前轴上方正中央放置返回的字符串作为标题
    title(‘text’,’PropertyName’,PropertyValue,…) 对由命令title生成的图形对象的属性进行设置,输入参数“text”为要添加的标注文本
    h = title(…) 返回作为标题的text对象句柄
  • xlabel命令使用

    调用格式 说 明
    xlabel(‘string’) 在当前轴对象中的x轴上标注说明语句string
    xlabel(fname) 先执行能返回字符串的函数fname,然后在当前x轴旁边显示出来
    xlabel(‘text’,’PropertyName’,PropertyValue,…) 对由命令title生成的图形对象的属性进行设置,输入参数“text”为要添加的标注文本

(2)图形标注

  • text命令

    调用格式 说 明
    text(x,y,’string’) 在图形中指定的位置(x,y)上显示字符串string
    text(x,y,z,’string’) 在三维图形空间中的指定位置(x,y,z)上显示字符串string
    text(x,y,z,’string’,’PropertyName’,PropertyValue,…) 在三维图形空间中的指定位置(x,y,z)上显示字符串string,且对指定的属性进行设置。
  • gtext命令

    gtext命令可以让鼠标在图形的任意位置进行标注。当光标进入图形窗口时,会变成一个大十字架形,等待用户的操作。它的使用格式为:

    gtext( ‘string’,‘property’,propertyvalue,…)调用这个函数后,图形窗口中的鼠标指针会成为十字光标,通过移动鼠标来进行定位,即光标移到预定位置后按下鼠标左键或键盘上的任意键都会在光标位置显示指定文本“string”。由于要用鼠标操作,该函数只能在MATLAB命令窗口中进行。

(3)图例标注

​ 当在一幅图中出现多种曲线时,用户可以根据自己的需要,利用legend命令对不同的图例进行说明。

实例:

1/绘制“余弦波”图形。

1
2
3
4
5
x=linspace(0,10*pi,100);
plot(x,cos(x));
title('余弦波');
xlabel('x坐标');
ylabel('y坐标');

2/绘制倒数函数

绘制倒数函数y=1/x在[0,2]上,标出1/4,1/2,5/4,7/4在图像上的位置,并在曲线上标出函数名。

1
2
3
4
5
6
7
x=0:0.1:2;
plot(x,1./x);
title('倒数函数');
xlabel('x'),ylabel('1./x');
text(0.25,1./0.25,'<--1./0.25');
text(0.5,1./0.5,'1./0.5\rightarrow','HorizontalAlignment','right');
gtext('y=1./x')

3/在同一个图形窗口内绘制三角函数

y1=sinx,y2=cosx,y3=tanx,并作出相应的图例标注。

1
2
3
4
5
6
7
8
9
x=linspace(0,2*pi,100);
y1=sin(x);
y2=cos(x);
y3=tan(x);
plot(x,y1,'md',x,y2,'b^',x,y3,':+ ');
title('三角函数');
xlabel('x'),ylabel('y');
axis([0,7,-2,3])
legend('sin(x)','cos(x)')