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);    
相关推荐
benchmark_cc5 小时前
量化系统架构设计:为什么应该将数据获取与策略逻辑解耦?
python·数据分析·pandas·量化交易·股票数据·quantdash
hanlin036 小时前
刷题笔记:力扣第32题-最长有效括号
笔记·算法·leetcode
All for pursuit.7 小时前
【动态规划-21】312.戳气球
数据结构·c++·算法·leetcode·动态规划
碧海银沙音频科技研究院9 小时前
基于炬芯ATS3089X自研AEC声学回声消除算法
算法
通问AI9 小时前
在两台 Mac Studio 上跑 800B 模型:MLX + RDMA over Thunderbolt 实测与四道门选型法
算法
ZywOo6239 小时前
《算法竞赛进阶指南》0x03 前缀和与差分
算法
Scintilla_y9 小时前
DAY2 滑动窗口
算法·leetcode·散列表
lvwangshu9 小时前
笛卡尔树
算法·图论
026d2310 小时前
状态信号只知“其然”不知“其所以然”:变工况机械故障诊断的物理盲区
算法
姜鱼问生10 小时前
备份和服务器在同一台机器上,等于没备份
算法·架构