首页 > 编程笔记 > MATLAB笔记 阅读:27

MATLAB plot绘图指令用法详解(附带实例)

二维图形是 MATLAB 图形的基础,也是应用非常广泛的图形类型之一。MATLAB 提供了许多二维图形绘制函数。本节介绍二维图形的绘制指令 plot。

MATLAB plot指令的用法

对数对进行排序的一种方法是使用 plot 指令。该命令可以带有不同数目的参数。最简单的形式就是将数据传递给 plot,线条的类型和颜色可以通过字符串来指定,这里用 str 表示。线条的默认类型是实线型。

plot 函数的调用格式如下:

1) plot(x, y)

以 x 为横坐标,y 为纵坐标,按照坐标 (xj, yj) 的有序排列绘制曲线。

2) plot(y)

y 为一维实数数组,以 1:n 为横坐标,yj 为纵坐标,绘制曲线(n 为 y 的长度)。

3) plot(z)

z 为一维复数数组,以横轴为实轴、纵轴为虚轴,在复平面上绘制(real(zj), imag(zj))的有序集合的图形。

【实例 1】在编辑器窗口中编写 M 文件并命名为 cosfigure.m(同时存为 ex.m):
clear all
X = -10:10; Y = X.^2;

figure(1)
subplot(1,3,1); plot(X, Y, 'LineWidth', 2);
subplot(1,3,2); plot(Y, 'LineWidth', 2); xlim([1 length(Y)])
Z = cos(-pi:pi/10:pi) + sqrt(-1)*sin(-pi:pi/10:pi);
subplot(1,3,3); plot(Z, 'LineWidth', 2);
程序运行结果如下图所示:


图 1 程序运行结果

4) plot(A)

绘制矩阵 A 的列对其下标的图形。对于 m×n 维的矩阵 A,有 n 个含有 m 个元素的数对或 n 条有 m 个点的曲线,且这 n 条曲线均采用颜色监视器上不同的颜色绘制而成。

【实例 2】在编辑器窗口中编写 M 文件并命名为 magicfigure.m:
clear all
A = magic(20);
A(9:20,:) = [];
figure; plot(A)
程序运行结果如下图所示:


图 2 程序运行结果

5) plot(x, A)

绘制矩阵 A 对向量 x 的图形。

对于 m×n 维的矩阵 A 和长度为 m 的向量 x,绘制矩阵 A 的列对向量 x 的图形;如果 x 的长度为 n,则绘制矩阵 A 的行对向量 x 的图形。向量 x 可以是行向量,也可以是列向量。

6) plot(A, x)

对矩阵 A 绘制向量 x 的图形。对于一个 m×n 维的矩阵 A 和一个长度为 m 的向量 x,绘制矩阵 A 的列对向量 x 的图形;如果 x 的长度为 n,则绘制矩阵 A 的行对向量 x 的图形。向量 x 可以是行向量,也可以是列向量。

7) plot(A, B)

绘制矩阵 A 的行对矩阵 B 的列的图形。A 和 B 都是 m×n 维的矩阵,将绘制 n 条由 m 个有序对连成的曲线。

【实例】在编辑器窗口中编写 M 文件并命名为 figuregrid.m:
clear all
for i=1:5
    for j=1:6
        A(i,j)=i+j;
    end
end
x = 0.2:0.2:1;

figure(1)
subplot(2,2,1); plot(A,x,'LineWidth',1.5);
subplot(2,2,2); plot(x,A,'LineWidth',1.5);
B = reshape(1:30,5,6);
subplot(2,2,3); plot(A,B,'LineWidth',1.5);
subplot(2,2,4); plot(B,A,'LineWidth',1.5);
程序运行结果如下图所示:


图 3 程序运行结果

8) plot(x, y, str)

用字符串 str 指定的颜色和线型绘制 y 对 x 的图形。

9) plot(x1, y1, str1, x2, y2, str2, …)

用字符串 str1 指定的颜色和线型绘制 y1 对 x1 的图形,用字符串 str2 指定的颜色和线型绘制 y2 对 x2 的图形,……每组参数值均可以采用上述除复数值外的任意一种形式。

str1,str2,… 可以省略,此时,MATLAB 自动为每条曲线选择颜色和线型。

【实例】在编辑器窗口中编写 M 文件并命名为 fivecircle.m:
clear
j = sqrt(-1);
x = 2; y = 0.4;
bluecircle = cos(-pi:pi/20:pi) + j*sin(-pi:pi/20:pi) + (j*y - x);
blackcircle = cos(-pi:pi/20:pi) + j*sin(-pi:pi/20:pi) + (j*y);
redcircle = cos(-pi:pi/20:pi) + j*sin(-pi:pi/20:pi) + (j*y + x);
yellowcircle = cos(-pi:pi/20:pi) + j*sin(-pi:pi/20:pi) + (- j*y - x/2);
greencircle = cos(-pi:pi/20:pi) + j*sin(-pi:pi/20:pi) + (- j*y + x/2);

figure(1)
plot(bluecircle,'LineWidth',2); hold on;
plot(blackcircle,'k','LineWidth',2); hold on;
plot(redcircle,'r','LineWidth',2); hold on;
plot(yellowcircle,'y','LineWidth',2); hold on;
plot(greencircle,'g','LineWidth',2);
程序运行结果如下图所示:


图 4 程序运行结果

【实例】在编辑器窗口中编写 M 文件并命名为 cosfigure.m:
clear, clf
x = -pi:pi/10:pi;
y = tan(sin(x)) - sin(tan(x));
plot(x, y, '--rs', 'LineWidth', 1, 'MarkerEdgeColor', 'k', ...
    'MarkerFaceColor', 'g', 'MarkerSize', 5);
程序运行结果如下图所示:


图 5 程序运行结果

【实例】利用函数 plot 绘制包络线。在编辑器窗口中编写 M 文件并命名为 envelope.m:
clear all
t = (0:pi/100:pi)';
y1 = sin(t) * [1, -1];
y2 = sin(t) .* sin(9*t);
t3 = pi*(0:9)/9;
y3 = sin(t3) .* sin(9*t3);

plot(t, y1, 'r--', t, y2, 'b', t3, y3, 'bo')
axis([0, pi, -1, 1])
绘制的包络线如下图所示:


图 6 绘制的包络线

【实例】当输入参数为向量时,利用函数 plot 绘制多条曲线。在编辑器窗口中编写 M 文件并命名为 multicurves.m。
clear all
x = -pi:pi/10:pi;
y = [sin(x); sin(x+3); sin(x+5)];
z = [cos(x); cos(x+3); cos(x+5)];
figure(1);
plot(x, y, 'r:*', x, z, 'g-.v'); % 绘制多条曲线
绘制的多条曲线如下图所示:


图 7 绘制的多条曲线

相关文章