【MATLAB绘图】

MATLAB绘图函数:Plot函数详解

介绍

MATLAB是一种常用的科学计算和数据可视化工具,它提供了强大的绘图函数,使用户能够创建各种类型的图表和图形。

基本语法

plot函数的基本语法如下:

plot(x, y)

其中,xy是长度相等的向量,分别表示要绘制的数据点的横坐标和纵坐标。通过传入不同的xy向量,我们可以创建不同类型的图形。

绘制简单折线图

首先,让我们来看一个简单的示例,绘制一条折线图:

x = 1:10;
y = [1 3 5 2 4 6 8 7 9 10];
plot(x, y)

在这个例子中,我们定义了一个长度为10的横坐标向量x,和一个长度为10的纵坐标向量yplot函数会根据这两个向量的值绘制出相应的折线图。

自定义线型和颜色

plot函数还可以通过指定线型和颜色参数,来自定义绘制的线条样式。

plot(x, y, 'LineStyle', '--', 'Color', 'r')

在上述示例中,我们通过添加额外的参数来指定线型为虚线(--),颜色为红色(r)。通过这种方式,我们可以根据需求定制绘图的样式。

绘制多个曲线

除了绘制单条曲线,plot函数还可以绘制多个曲线在同一个坐标系中,使其在同一个图形中显示。

x = 1:10;
y1 = [1 3 5 2 4 6 8 7 9 10];
y2 = [2 4 6 8 10 12 14 16 18 20];
plot(x, y1, x, y2)

在上面的示例中,我们定义了两个纵坐标向量y1y2,并使用相同的横坐标向量x进行绘制。通过在plot函数中传入多组xy向量,我们可以绘制多个曲线在同一个图形中。

子图绘制

MATLAB提供了subplot函数,可以在同一个图形窗口中绘制多个子图。通过指定行数和列数,以及当前子图的位置,我们可以在不同位置绘制不同的图形。

x = 1:10;
y1 = [1 3 5 2 4 6 8 7 9 10];
y2 = [2 4 6 8 10 12 14 16 18 20];

subplot(2, 1, 1);
plot(x, y1);
title('曲线1');

subplot(2, 1, 2);
plot(x, y2);
title('曲线2');

在上述示例中,我们使用subplot函数创建了一个2行1列的图形窗口,并在第一个子图位置绘制了曲线1,第二个子图位置绘制了曲线2。

极坐标绘制

使用polarplot函数来绘制极坐标系下的曲线图。

theta = linspace(0, 2*pi, 100);
rho = sin(2*theta);

polarplot(theta, rho)

在上面的示例中,我们定义了角度向量theta和极径向量rho,并使用polarplot函数绘制了对应的极坐标图形。

柱状图绘制

通过设置'bar'参数来指定绘图类型为柱状图。

x = categorical({
    
    'A', 'B', 'C', 'D'});
y = [3 5 2 7];

bar(x, y)

在上述示例中,我们使用了categorical函数创建了一个分类变量x,并定义了对应的高度向量y。通过设置'bar'参数,我们可以绘制出相应的柱状图。

三维图像绘制

我们可以使用meshgrid函数生成二维网格,然后计算函数值,并用surf函数绘制曲面图。

考虑以下的二元函数:

z = f(x, y) = sin(x) + cos(y)

下面是绘制三维曲面图的MATLAB代码:

% 定义范围和步长
x = -pi:0.1:pi;
y = -pi:0.1:pi;

% 生成二维网格
[X, Y] = meshgrid(x, y);

% 计算函数值
Z = sin(X) + cos(Y);

% 绘制三维曲面
figure;
surf(X,

 Y, Z);

% 设置坐标轴标签和标题
xlabel('X');
ylabel('Y');
zlabel('Z');
title('三维曲面:z = sin(x) + cos(y)');

% 添加颜色条
colorbar;

运行这段MATLAB代码后,将会绘制出一个三维曲面,显示出函数z = sin(x) + cos(y)[-π, π]范围内的分布情况。

散点图绘制

通过scatter函数绘制一组数据点的散点图。

以下是一个随机生成数据并绘制散点图的MATLAB代码示例:

% 生成随机数据
n = 50; % 数据点的数量
x = randn(n, 1); % 随机生成n个标准正态分布的x坐标
y = 2 * x + randn(n, 1); % 根据x生成y坐标,同时添加一些噪声

% 绘制散点图
figure;
scatter(x, y, 'filled', 'MarkerFaceColor', 'b');

% 设置坐标轴标签和标题
xlabel('X');
ylabel('Y');
title('散点图示例:y = 2*x + noise');

% 添加网格线
grid on;

运行这段MATLAB代码后,将会绘制出一个散点图,显示出数据点在坐标平面上的分布情况。

猜你喜欢

转载自blog.csdn.net/qq_66726657/article/details/131923980