MATLAB 中的 plot
函数是用于绘制二维线性图形的基本函数,功能强大且灵活,广泛用于数据可视化和分析。
MATLAB plot
函数详解
一、基本语法
plot(Y)
plot(X, Y)
plot(X, Y, LineSpec)
plot(X1, Y1, LineSpec1, X2, Y2, LineSpec2, ...)
X
和Y
是向量,表示横轴和纵轴的数据点。- 如果只写
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 最常用的绘图函数。- 可以一次绘制多条曲线,支持丰富的线条样式和标记。
- 结合
title
、xlabel
、ylabel
、legend
等函数可增强图形表达效果。 - 通过
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
打开网格,方便观察数值。- 用
plot
和text
给最大值点添加标记和文字说明。
好的!这里给你一个 MATLAB 三维绘图的示例,展示如何用 plot3
、mesh
和 surf
等函数绘制三维曲线和曲面。
% 三维曲线绘制示例
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
控制动画流畅度。
发表回复