MATLAB以其强大的矩阵运算和可视化功能,成为科研、工程领域的标配工具。本文提供从基础二维图形到复杂三维模型的即用代码块,涵盖数据标注、多图排版、动态演示等核心技巧
所有代码均经过MATLAB 2023a实测,替换数据即可生成专业级图表。"
一、二维图形
1. 带误差带的折线图
Matlab
复制代码
% 数据准备
x = 1:10;
y = rand(1,10)*5; err = 0.2 + rand(1,10)*0.5;
% 绘制误差折线图
errorbar(x, y, err, 'o-', 'LineWidth', 1.5, 'Color', [0.2 0.4 0.8])
title('带误差带的实验数据','FontSize',12)
xlabel('时间 (s)','FontWeight','bold')
ylabel('电压 (V)')
grid on
set(gca, 'FontName', 'Arial') % 设置字体
2. 多数据对比柱状图
Matlab
复制代码
data = [43 64 29; 52 54 49; 30 46 39];
% 3组x3类别
categories = {'A组', 'B组', 'C组'};
% 分组柱状图
bar(data, 'grouped')
set(gca, 'XTickLabel', categories)
legend({'对照组','实验组1','实验组2'}, 'Location', 'northwest')
ylabel('响应值') % 添加数值标签
for i = 1:size(data,1)
text(i-0.3, data(i,1)+2, num2str(data(i,1)), 'FontSize',10)
end
二、进阶二维技巧
3. 子图自动排版(适合多图对比)
Matlab
复制代码
figure('Position', [100 100 800 600])
% 设置画布尺寸
tiledlayout(2,2, 'Padding', 'compact') % 创建2x2子图 %
子图1:散点图
nexttile scatter(randn(100,1), randn(100,1), 'filled', 'MarkerFaceAlpha',0.6)
title('随机散点分布')
% 子图2:饼图
nexttile pie([28 17 35], {'正常','警告','故障'})
% 子图3:阶梯图
nexttile stairs(1:24, rand(24,1)*50, 'LineWidth',1.2)
% 子图4:极坐标图
nexttile theta = linspace(0, 2*pi, 50); polarplot(theta, 2*sin(5*theta), 'm--')
4. 动态数据实时更新
Matlab
复制代码
h = animatedline('Color','r','LineWidth',w);
axis([0 10 -5 5])
xlabel('时间')ylabel('信号强度')
for k = 1:100
addpoints(h, k/10, sin(k/2)+0.1*randn())
drawnow limitrate % 高性能实时刷新
end
三、三维图形实战
5. 三维曲线(轨迹可视化)
Matlab
复制代码
t = linspace(0, 10*pi, 500);
x = exp(-0.1*t).*sin(t);
y = exp(-0.1*t).*cos(t);
z = t/5;
plot3(x, y, z, 'LineWidth', 2)
view(45,30) % 调整视角
xlabel('X轴'), ylabel('Y轴'), zlabel('Z轴')
grid on
box on % 显示边框
6. 三维曲面+等高线
Matlab
复制代码
% 此脚本用于生成三维数据并绘制三维曲面图及其等高线投影图
% 生成网格数据
% 创建X和Y方向的网格点,范围从 -3 到 3,间隔为 0.2
[X, Y] = meshgrid(-3:0.2:3);
% 根据X和Y计算Z值,使用函数 Z = X * exp(-X^2 - Y^2)
Z = X .* exp(-X.^2 - Y.^2);
% 创建一个包含2行1列的子图布局
% 绘制三维曲面图
subplot(2, 1, 1);
% 绘制三维曲面,不显示边缘颜色
surf(X, Y, Z, 'EdgeColor', 'none');
% 设置颜色映射为 Turbo 色谱
colormap(turbo);
% 添加颜色条以显示颜色与数值的对应关系
colorbar;
% 设置子图标题
title('三维曲面图');
% 叠加等高线投影图
subplot(2, 1, 2);
% 绘制填充的等高线图,设置等高线数量为 20,并显示等高线数值
contourf(X, Y, Z, 20, 'ShowText', 'on');
% 设置坐标轴比例相等,使图形不失真
axis equal;
% 设置子图标题
title('等高线投影图');
7. 三维柱状图
Matlab
复制代码
% 此脚本用于生成3组三维坐标数据并绘制三维柱状图
% 生成三维坐标数据
% 生成X坐标矩阵,将向量1到5重复5次形成5行5列的矩阵
x = repmat(1:5, 5, 1);
% 生成Y坐标矩阵,为X的转置矩阵
y = x';
% 生成Z坐标矩阵,为5行5列的随机矩阵,元素范围在0到10之间
z = rand(5, 5) * 10;
% 创建一个新的图形窗口
figure;
% 绘制三维柱状图
bar3(z);
% 添加坐标轴标签
xlabel('X类别');
ylabel('Y类别');
zlabel('测量值');
% 设置X轴刻度标签
set(gca, 'XTickLabel', {'A', 'B', 'C', 'D', 'E'});
% 调整视角
view(-30, 30);