MATLAB以其強大的矩陣運算和可視化功能,成為科研、工程領域的標配工具。本文提供從基礎二維圖形到復雜三維模型的即用代碼塊,涵蓋數據標注、多圖排版、動態演示等核心技巧
所有代碼均經過MATLAB 2023a實測,替換數據即可生成專業級圖表。”
一、二維圖形
1. 帶誤差帶的折線圖
% 數據準備?
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. 多數據對比柱狀圖
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. 子圖自動排版(適合多圖對比)
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. 動態數據實時更新
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. 三維曲線(軌跡可視化)
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. 三維曲面+等高線
% 此腳本用于生成三維數據并繪制三維曲面圖及其等高線投影圖% 生成網格數據
% 創建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. 三維柱狀圖
% 此腳本用于生成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);