MATLAB之数据分析图系列:从二维到三维(直接套用)

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);    
相关推荐
董董灿是个攻城狮10 分钟前
Transformer 通关秘籍7:词向量的通俗理解
算法
卷卷的小趴菜学编程25 分钟前
算法篇-------------双指针法
c语言·开发语言·c++·vscode·算法·leetcode·双指针法
komo莫莫da35 分钟前
Day14 动态规划(3)
算法·深度优先·动态规划
Allen_LVyingbo1 小时前
文章配图新纪元:OpenAI新推出的GPT-4o原生图像生成功能启示
人工智能·学习·架构·数据分析·健康医疗
地平线开发者1 小时前
【征程 6】工具链 VP 示例为什么能运行
算法·自动驾驶
ElseWhereR1 小时前
困于环中的机器人
c++·算法·leetcode
学也不会2 小时前
d2025331
java·数据结构·算法
清晨朝暮2 小时前
【算法学习计划】贪心算法(中)
学习·算法·贪心算法
独好紫罗兰2 小时前
洛谷题单2-P2433 【深基1-2】小学数学 N 合一-python-流程图重构
开发语言·python·算法
独好紫罗兰2 小时前
洛谷题单2-P5709 【深基2.习6】Apples Prologue 苹果和虫子-python-流程图重构
开发语言·python·算法