日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MATLAB绘图/数据的可视化

發(fā)布時間:2023/12/10 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MATLAB绘图/数据的可视化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MATLAB繪圖/數(shù)據(jù)的可視化

  • 二維繪圖
  • 科研繪圖模板
  • 利用MATLAB直接對Excel數(shù)據(jù)繪圖
  • 三維繪圖

MATLAB數(shù)據(jù)可視化是極重要的功能,文章介紹了MATLAB繪圖與數(shù)據(jù)可視化的相關(guān)方法,閱讀本文讀者可以快速掌握MATLAB繪圖技巧,在"科研繪圖模板"為讀者提供了較為完善的三種繪圖模板供讀者嘗試。

繪圖的步驟:曲線數(shù)據(jù)準備(對于二維曲線準備橫縱坐標數(shù)據(jù),對于三維曲面準備矩陣參變量和對應的Z坐標值);指定圖形窗口和子圖位置(使用Figure命令指定圖形窗口,默認時打開Figure1窗口,使用subplot命令指定當前子圖);繪制圖形;設置坐標軸和圖形注釋;對三維圖形使用的著色和視點等設置;圖形的精細修飾;按指定格式保存或?qū)С鰣D片。

二維繪圖

基本繪圖函數(shù)

plot(y) %繪制以y為縱坐標的二維曲線,y為矩陣時按列對y中數(shù)據(jù)繪圖 plot(x,y) plot(x1,y1,x2,y2,...) %同一窗口繪制多條二維曲線

多個圖形的繪制

%% 同一個窗口多個子圖 subplot(m,n,i) %將窗口分成(m*n)幅子圖,第i幅為當前幅,編號原則:左上起先從左往右后從上往下%% 雙坐標圖 plotyy(x1,y1,x2,y2) %以左、右不同的縱軸繪制兩條曲線%% 同一窗口多次疊繪 %一般調(diào)用plot函數(shù)都是繪制新圖形而不保留舊有圖形,使用hold命令可以保留原圖形,使多個plot函數(shù)在一個坐標系中不斷疊加 hold on %使當前坐標系和圖形保留(僅保留數(shù)據(jù)和坐標軸屬性) hold off %使當前坐標系和圖形不保留 hold %在上述兩個命令間切換 hold all %使當前坐標系和圖形保留,并且保留當前線的顏色和樣式%% 指定圖形窗口 %使用plot等繪圖命令時都是默認打開"Figure 1"窗口,使用figure則可以打開多個窗口 figure(n) %產(chǎn)生新圖形窗口

設置圖形樣式

%% 曲線的線性、顏色和數(shù)據(jù)點型 plot(x,y,s) %s為字符串,用以設置曲線的線性、顏色和數(shù)據(jù)點型等。 plot(x,y,'mo-.') %繪制紫紅色圓圈標記點劃線%% 設置坐標軸 坐標軸相關(guān)命令都是以axis開頭 axis auto %使用默認設置 axis([xmin,xmax,ymin,ymax]) %設定坐標范圍 axis equal %縱、橫坐標采用等長刻度%% 分割線和坐標框 %坐標框是指坐標系的刻度框 使用box on/box off/box控制 %分割線是指在坐標系中根據(jù)坐標軸刻度使用虛線進行分割 grid on %顯示分割線 grid off %不顯示分割線(默認設置) grid %在二者間切換%% 圖形注釋 %圖形注釋包括設置標題(title)、坐標軸便簽(label)、圖例(legend)、添加標準元素(annotation) %MATLAB支持部分tex公式,例如\alpha為自動識別為α title('title'),legend('s1','s2',...,pos),xlabel('x'),ylabel('y'); text(xt,yt,'s') %在圖形的(xt,yt)坐標處書寫文字注釋 annotation('type',[x1,x2],[y1,y2]) %根據(jù)type在指定坐標處添加注釋元素,type: rectangle 為矩形,textbox 為文本框,line 為線,arrow 為箭頭,textarrow 為帶文字箭頭,ellipse 為橢圓

線型 實線’-‘,雙劃線’–‘,虛線’:‘,點劃線’-.’

標記 實點. 圓圈o 叉號x 星號* 正方形s 菱形d 五角形p 六邊形h 上下左右三角形^ v > <

顏色 紅r 綠g 藍b 黃y 黑k 白w 青色c 紫紅m

使用鼠標添加注釋文字–當調(diào)節(jié)text(xt,yt,'s')位置不方便時可以使用

gtext('s') %用鼠標把字符串放在圖形上 gtext({'s1','s2','s3'}) %一次將多個的字符串分行放置在圖形上 gtext({'s1';'s2';'s3'}) %一次放置一個字符串分多次放置在圖形上 %例如為正弦圖形窗口添加文字標注 >> gtext({'\pi';'2\pi';'3\pi'})

使用鼠標獲取圖形數(shù)據(jù)

[x,y]=ginput(n) %用鼠標從圖形上獲取n個點的坐標(x,y)

特殊圖形的繪制

bar(x,y,width,參數(shù)) %繪制橫縱坐標、寬度分別為x,y,width的柱狀圖 area(x,y) %繪制橫坐標為x,縱坐標為y的面積圖;y可以是矩陣(多重面積圖);若x省略則橫坐標為1:size(y,1) pie(x,explode,'label') %繪制各元素占總和的百分比 errorbar(X,Y,E) %繪制誤差棒 quiver(x,y,u,v) %繪制以(x,y)為起點,橫縱坐標為(u,v)的向量場 polar(theta,rho,參數(shù)) %繪制極坐標圖 contour(z) %繪制矩陣z的等高線圖%% 繪制帶誤差棒的線條 x = linspace(0,10,15); y = sin(x/2); err = 0.3*ones(size(y)); errorbar(x,y,err,'-s','MarkerSize',10,...'MarkerEdgeColor','red','MarkerFaceColor','red')

科研繪圖模板

%% 科研繪圖模板--二維 X=0:0.1:5; Y=[sin(X); cos(X)]; %'MarkerIndices',1:1:length(y1)plot(X,Y(1,:),'b.-',X,Y(2,:),'mo-.');%繪圖樣式設置 title('Example 1'); xlabel('X'),ylabel('Y'); legend('s1','s2') annotation('textarrow',[0.57,0.62],[0.5,0.5],'String','Y = sin(X)');set(gca,'xtick',0:1:5); %設置刻度線密度 set(gca,'xminortick','on');%小刻度打開 set(gca,'ticklength',[0.025 0.0125]);%設置刻度線長度(大刻度與小刻度長度)set(gca,'ytick',-1:0.5:1); %設置刻度線密度 set(gca,'yminortick','on');%小刻度打開 set(gca,'ticklength',[0.025 0.0125]);%設置刻度線長度(大刻度與小刻度長度)box off ax2 = axes('Position',get(gca,'Position'),...'XAxisLocation','top',...'YAxisLocation','right',...'Color','none',...'XColor','k','YColor','k'); set(ax2,'YTick', []); set(ax2,'XTick', []); box on%% Example 2 figure %新建圖表x = 0:0.1:1; y = [2./(x+1); x; x.^2; x.^4];plot(x,y(1,:),'r.-'); hold on; plot(x,y(2,:),'m*--'); plot(x,y(3,:),'bo:'); plot(x,y(4,:),'k^-.'); title('Example 2') grid on; set(gca,'FontSize',10); %橫縱軸標注字體大小; set(gca,'xtick',0:0.1:1); %設置刻度線密度 set(gca,'ytick',0:0.3:2); xlabel('x','FontSize',15); ylabel('y','FontSize',15); text(0.5,0.5,'o [0.5,0.5]'); legend('2/(x+1)','x','x^2','x^4');%% subplot figure t=0:0.01:2*pi; for k = 1:9y=sin(k*t);subplot(3,3,k);plot(t,y);title(['sin(',num2str(k),'*t)']) end suptitle('Example 3');%% 保存文件 savename = ['sphere1']; % 設置輸出文件名 Figure_num = 1; %獲取第i張圖'Figure i',也直接用gcf獲取當前窗口句柄 Figure_num=gcf print(Figure_num,[savename,'.png'],'-r600','-dtiff'); % 設置保存格式及分辨率,

利用MATLAB直接對Excel數(shù)據(jù)繪圖

假設此時我們有excel形式的實驗數(shù)據(jù)需要對其進行處理,數(shù)據(jù)節(jié)選如下

那么我們再配合MATLAB打開Excel的知識就可以直接利用Excel中的數(shù)據(jù)作圖,代碼如下

clc;clear all;close all;figure %新建圖表 [num]=xlsread('D:\FilePath\example.xlsx') ; x = num(2:end,1); y = num(2:end,[2:end]); len_y = length(y(:,1));plot(x,y(:,1),'r.-','MarkerIndices',1:50:len_y);hold on; plot(x,y(:,2),'m*--','MarkerIndices',1:50:len_y); plot(x,y(:,3),'bo:','MarkerIndices',1:50:len_y); plot(x,y(:,4),'k^-.','MarkerIndices',1:50:len_y); plot(x,y(:,5),'r-p','MarkerIndices',1:50:len_y); grid on;xlabel('lambda (nm)','FontSize',15); ylabel('E_{\lambda T} (W/m^3)','FontSize',15);set(gca,'FontSize',10); %橫縱軸標注字體大小; set(gca,'xtick',800:300:3600); %設置刻度線密度 set(gca,'ytick',-500:500:4000);text(0.5,0.5,'o [0.5,0.5]'); title('黑體輻射'); legend('2999k','2889k','2548k','2455k','2303k')savename = ['figure']; % 設置輸出文件名 Figure_num = 1; %獲取第i張圖'Figure i',也直接用gcf獲取當前窗口句柄 Figure_num=gcf print(Figure_num,[savename,'.png'],'-r600','-dtiff'); % 設置保存格式及分辨率

處理結(jié)果如下

熟練使用MATLAB對Excel中的數(shù)據(jù)進行提取并繪圖可以更好的進行數(shù)據(jù)可視化。

PS:筆者沒有調(diào)節(jié)細節(jié)可能有些粗糙,大家可以根據(jù)自己的喜好進行調(diào)整。
Tips:MATLAB中支持latex格式的行內(nèi)公式,例如要輸入 λ\lambdaλ 只需輸入\lambda即可。

三維繪圖

MATLAB繪制的三維圖形包括三維曲線、三維網(wǎng)格和三維表面圖。三維圖形與二維圖形相比需要的數(shù)據(jù)是三維的,并且還增加了顏色表、光照、視角等設置。

三維曲線圖

plot3(x,y,z) %繪制三維曲線 >> x=[0:0.2:10;30:0.2:40]; %兩列數(shù)據(jù) >> y=sin(x) >> z=cos(x) >> plot3(x,y,z)

三維曲面圖

%% 三維曲面函數(shù) mesh--三維網(wǎng)線圖; meshc--三維網(wǎng)線圖(帶等高線版); meshz--三維網(wǎng)線圖(帶圍裙線版); surf--三維表面圖; surfc--三維表面圖(帶等高線版); waterfalll--三維瀑布圖; ribbon--三維彩帶圖,只顯示一維數(shù)據(jù); Contour3--三維等高線圖; surf1--三維表面加光照效果

繪圖步驟

%1.產(chǎn)生矩形網(wǎng)絡 x=1:5;y=1:3; [X,Y]=meshgrid(x,y) %產(chǎn)生XY矩形網(wǎng)絡%2.三維網(wǎng)線圖 x=0:10; [X,Y]=meshgrid(x) %y省略則表示x=y Z=X.^2+Y.^2; mesh(X,Y,Z) %(X,Y)是通過meshgrid得到的網(wǎng)格頂點,C是指定各點顏色的用色矩陣mesh(X,Y,Z,C),省略時用色矩陣默認為Z%3.三維網(wǎng)面圖 surf(X,Y,Z,C)

設置視角

三維圖形在不同的位置觀察會有不同的結(jié)果,因此需要設置視角。視角是由方位角和俯仰角決定的,與x平面所成的夾角稱為方位角(Azimuth), 與z平面所形成的夾角稱為俯仰角(Elevation)。

view([az,el]) %通過方位角和俯仰角設置視角 view([x,y,z]) %通過(x,y,z)直角坐標設置視角

例:改變視角觀察 z=sin?x2+y2x2+y2z=\frac{\sin{\sqrt{x^2+y^2}}}{\sqrt{x^2+y^2}}z=x2+y2?sinx2+y2?? 的三維表面圖

x=-8:0.6:8; [X,Y]=meshgrid(x); Z=sin(sqrt(X.^2+Y.^2))./sqrt(x.^2+Y.^2); subplot(2,2,1) surf(X,Y,Z) subplot(2,2,2) surf(X,Y,Z) view(2) %二維平面 subplot(2,2,3) surf(X,Y,Z) view([180,0]) %側(cè)面圖 subplot(2,2,4) surf(X,Y,Z) view([1,1,5]) %根據(jù)向量[1,1,5]的方向設置視角

設置色彩

MATLAB使用色圖作為著色的基礎,色圖是一個m×3m\times3m×3的矩陣,m的值通常是64,代表真正用到的顏色個數(shù)。

默認的色圖為hsv,gray代表灰度對照表,spring代表春天色對照表,hot暖色對照表,cool冷色對照表,summer夏天色,autumn秋天色,winter冬天色,pink粉色系。

x=-8:0.6:8; [X,Y]=meshgrid(x); Z=sin(sqrt(X.^2+Y.^2))./(sqrt(X.^2+Y.^2)); colormap(spring) %設置色圖 surf(X,Y,Z) colorbar %顯示顏色表

由于該部分繪圖參數(shù)適用頻率較高,故在文末重復一次。

線型 實線’-‘,雙劃線’–‘,虛線’:‘,點劃線’-.’
標記 實點. 圓圈o 叉號x 星號* 正方形s 菱形d 五角形p 六邊形h 上下左右三角形^ v > <
顏色 紅r 綠g 藍b 黃y 黑k 白w 青色c 紫紅m


相關(guān)文章

在基本繪圖要求以外,考慮到還有讀者有利用函數(shù)表達式作圖、利用四維數(shù)據(jù)作圖復數(shù)作圖制作GIF等要求,筆者還寫了一篇 MATLAB繪圖——加強篇

同時,由于筆者自己就是物理學專業(yè)的學生,考慮到對物理場繪圖的需求,筆者還特地針對二維、三維情況下標量場、矢量場的繪圖寫了一篇文章:MATLAB之物理場可視化

專欄更多文章見:計算物理學習筆記

總結(jié)

以上是生活随笔為你收集整理的MATLAB绘图/数据的可视化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。