MATLAB 中的 plot 函数是用于绘制二维线性图形的基本函数,功能强大且灵活,广泛用于数据可视化和分析。


MATLAB plot 函数详解


一、基本语法

plot(Y)
plot(X, Y)
plot(X, Y, LineSpec)
plot(X1, Y1, LineSpec1, X2, Y2, LineSpec2, ...)
  • XY 是向量,表示横轴和纵轴的数据点。
  • 如果只写 plot(Y),则默认 X = 1:length(Y)
  • LineSpec 是一个字符串,用于定义线条颜色、样式和标记,比如 'r--o'(红色虚线,带圆圈标记)。

二、示例代码

% 简单折线图
x = 0:0.1:2*pi;
y = sin(x);
plot(x, y)

% 多条曲线
y2 = cos(x);
plot(x, y, 'r-', x, y2, 'b--')

% 带标记的线
plot(x, y, 'g-o')

三、常用 LineSpec 格式

符号含义
'r'红色(red)
'g'绿色(green)
'b'蓝色(blue)
'k'黑色(black)
'-'实线
'--'虚线
':'点线
'-.'点划线
'o'圆圈标记
'+'加号标记
'*'星号标记
's'方形标记

四、进阶用法

1. 添加标题、坐标轴标签和图例

plot(x, y)
title('正弦函数')
xlabel('x 轴')
ylabel('y 轴')
legend('sin(x)')

2. 设置坐标轴范围

axis([0 2*pi -1.5 1.5])

3. 多图绘制

subplot(2,1,1) % 2行1列第1个子图
plot(x, y)
title('sin(x)')

subplot(2,1,2) % 2行1列第2个子图
plot(x, cos(x))
title('cos(x)')

4. 控制线条宽度和颜色

plot(x, y, 'r-', 'LineWidth', 2)

五、总结

  • plot 是 MATLAB 最常用的绘图函数。
  • 可以一次绘制多条曲线,支持丰富的线条样式和标记。
  • 结合 titlexlabelylabellegend 等函数可增强图形表达效果。
  • 通过 subplot 实现多图组合。

明白!下面给你一个带注释、多条曲线、网格和标注的较复杂 MATLAB 绘图示例,帮你全面理解 plot 函数用法。

% 生成数据
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);
y3 = sin(x) .* cos(x);

% 创建图形窗口
figure

% 绘制多条曲线
plot(x, y1, 'r-', 'LineWidth', 2); hold on      % 红色实线,宽度2,sin(x)
plot(x, y2, 'b--', 'LineWidth', 2);             % 蓝色虚线,cos(x)
plot(x, y3, 'g-.', 'LineWidth', 2);             % 绿色点划线,sin(x)*cos(x)

% 添加标题和坐标轴标签
title('多条曲线示例:sin(x), cos(x), sin(x)*cos(x)')
xlabel('x 值')
ylabel('函数值')

% 显示图例
legend({'sin(x)', 'cos(x)', 'sin(x)*cos(x)'}, 'Location', 'northeast')

% 添加网格
grid on

% 设置坐标轴范围
axis([0 2*pi -1 1])

% 标注一个重要点
[x_max, idx] = max(y3);
y_max = y3(idx);
plot(x_max, y_max, 'ko', 'MarkerSize', 8, 'MarkerFaceColor', 'k')
text(x_max, y_max+0.1, sprintf('最大值 (%.2f, %.2f)', x_max, y_max))

hold off

说明:

  • hold on 保持图像,连续绘制多条曲线。
  • legend 用来添加曲线说明。
  • grid on 打开网格,方便观察数值。
  • plottext 给最大值点添加标记和文字说明。

好的!这里给你一个 MATLAB 三维绘图的示例,展示如何用 plot3meshsurf 等函数绘制三维曲线和曲面。

% 三维曲线绘制示例
t = linspace(0, 10*pi, 500);
x = sin(t);
y = cos(t);
z = t;

figure
plot3(x, y, z, 'LineWidth', 2)
grid on
title('三维螺旋线')
xlabel('X 轴')
ylabel('Y 轴')
zlabel('Z 轴')

% 三维网格曲面绘制
[X, Y] = meshgrid(-3:0.1:3, -3:0.1:3);
Z = sin(sqrt(X.^2 + Y.^2));

figure
mesh(X, Y, Z)
title('三维网格曲面 mesh')
xlabel('X 轴')
ylabel('Y 轴')
zlabel('Z 轴')

% 三维彩色曲面绘制
figure
surf(X, Y, Z)
title('三维彩色曲面 surf')
xlabel('X 轴')
ylabel('Y 轴')
zlabel('Z 轴')
shading interp      % 平滑颜色过渡
colorbar            % 显示颜色条

说明:

  • plot3(x,y,z) 绘制三维空间中的曲线。
  • mesh(X,Y,Z) 绘制网格状曲面。
  • surf(X,Y,Z) 绘制带颜色填充的曲面。
  • shading interp 让曲面颜色更平滑自然。
  • colorbar 添加颜色图例,显示数值对应的颜色范围。

了解!这里给你一个简单的 MATLAB 三维动画示例,展示一个旋转的三维螺旋线,配合视角动态变化,适合入门学习动画绘图。

% 三维螺旋线数据
t = linspace(0, 10*pi, 500);
x = sin(t);
y = cos(t);
z = t;

figure
h = plot3(x, y, z, 'LineWidth', 2);
grid on
axis tight
xlabel('X 轴')
ylabel('Y 轴')
zlabel('Z 轴')
title('旋转的三维螺旋线动画')

% 动画循环:旋转视角
for angle = 0:1:360
    view(angle, 30)  % azimuth, elevation
    drawnow
    pause(0.02)      % 控制动画速度
end

说明:

  • plot3 绘制三维曲线。
  • view(az, el) 控制视角,az是方位角,el是高度角。
  • 用循环逐步改变 az 实现旋转效果。
  • drawnow 强制刷新绘图。
  • pause 控制动画流畅度。