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);    
相关推荐
松果集19 分钟前
MATLAB基础知识【8】绘图,peaks,sphere,积分
matlab
Brduino脑机接口技术答疑27 分钟前
脑机新手指南(二十一)基于 Brainstorm 的 MEG/EEG 数据分析(上篇)
数据挖掘·数据分析
镜舟科技28 分钟前
StarRocks × Tableau 连接器完整使用指南 | 高效数据分析从连接开始
starrocks·数据分析·数据可视化·tableau·连接器·交互式分析·mpp 数据库
向阳@向远方1 小时前
第二章 简单程序设计
开发语言·c++·算法
好开心啊没烦恼2 小时前
Python 数据分析:DataFrame,生成,用字典创建 DataFrame ,键值对数量不一样怎么办?
开发语言·python·数据挖掘·数据分析
github_czy2 小时前
RRF (Reciprocal Rank Fusion) 排序算法详解
算法·排序算法
许愿与你永世安宁3 小时前
力扣343 整数拆分
数据结构·算法·leetcode
爱coding的橙子3 小时前
每日算法刷题Day42 7.5:leetcode前缀和3道题,用时2h
算法·leetcode·职场和发展
满分观察网友z3 小时前
从一次手滑,我洞悉了用户输入的所有可能性(3330. 找到初始输入字符串 I)
算法
YuTaoShao3 小时前
【LeetCode 热题 100】73. 矩阵置零——(解法二)空间复杂度 O(1)
java·算法·leetcode·矩阵