工具方法|Matlab 簡單繪圖與排版

工具方法|Matlab 簡單繪圖與排版

對於很多教師與學生,Matlab是做數值計算很好的一款軟件。收集、整理、分析數據十分的方便,我們也可以通過Matlab畫出相對比較好看的圖。這裡簡單總結下Matlab的畫圖方式與排版,供初學者參考、交流。Matlab基本都是封裝好的函數,所以用起來非常簡單,這裡只是簡單示例,希望大家多多交流。因為好的圖表呈現方式讓人一目瞭然,如果你在學術論文或平時閱讀的讀物中發現很好的圖像呈現方式就分享出來,大家一起交流探討如何繪製,共同學習進步。

1 將兩個圖畫在同一座標系下

放在同一座標系下便於比較異同。

主要運用matlab中的 hold on , 基本代碼如下:

1. x=0:0.001:3*pi;
2. plot(x,sin(x),'r');
3. hold on
4. plot(x,cos(x),'g');
5. hold off
6. xlabel('x'),ylabel('y'),legend('sin','cos')
工具方法|Matlab 簡單繪圖與排版

sin-cos.png

2 分窗口繪圖

為了便於比較,但放在同一個座標系下又怕畫面很亂。

主要運用matlab中的subplot,基本代碼如下:

1. figure,
2. x=0:0.001:3*pi;
3. subplot(2,1,1)
4. plot(x,sin(x),'r');
5. xlabel('x'),ylabel('y'),legend('sin(x)')
6. subplot(2,1,2)
7. plot(x,cos(x),'g');
8. xlabel('x'),ylabel('y'),legend('cos(x)')
工具方法|Matlab 簡單繪圖與排版

sin-cos.png

3 共用橫座標圖像依次豎直排開

有共同的x參數,比較y參數的異同。

其實還是運用matlab中的subplot,只不過是利用position控制座標軸的位置,用xticklabel更改座標軸屬性,基本代碼如下:

1. figure,
2. x=0:0.001:3*pi;
3. subplot(2,1,1)
4. plot(x,sin(x),'r');legend('sin(x)')
5. set(gca,'xticklabel',[]);
6. set(gca,'box','on');
7. set(gca,'position',[0.1 0.5 0.8 0.4]);
8. subplot(2,1,2)
9. plot(x,cos(x),'g');legend('cos(x)')
10. set(gca,'box','on');
11. set(gca,'position',[0.1 0.1 0.8 0.4]);
12. xlabel('x')
工具方法|Matlab 簡單繪圖與排版

sin-cos.png

4 雙y軸

擁有共同的x,建立兩個y軸。

主要利用matlab中plotyy這個基本函數,基本代碼如下:

1. figure,
2. x=0:0.001:3*pi;
3. a=plotyy(x,sin(x),x,cos(x))
4. ylabel(a(1),'sin(x)')
5. ylabel(a(2),'cos(x)')
工具方法|Matlab 簡單繪圖與排版

sin-cos.png

5 三維座標下呈現多條二維曲線

防止數據疊加,造成畫面混亂,三維下比較異同。

主要運用matlab plot3函數,基本代碼如下:

1. x=1:0.001:5*pi;
2. y1=ones(1,length(x))*1;
3. y2=ones(1,length(x))*2;
4. y3=ones(1,length(x))*3;
5. z1=sin(x);
6. z2=cos(x);
7. z3=sin(x)+cos(x);
8. figure,
9. plot3(x,y1,z1),xlabel('x'),ylabel('y'),zlabel('\itf(x)'),
10. set(gca,'yticklabel',[])
11. hold on
12. plot3(x,y2,z2)
13. plot3(x,y3,z3)
14. grid on;
15. legend('sin','cos','sin+cos')
工具方法|Matlab 簡單繪圖與排版

sin-cos-sin+cos.png

6 二維數組的網格圖

不同視角觀察,不同的方向觀察三維圖。

主要運用matlab的mesh函數與view函數,具體代碼如下:

1. % A=imread('prof.jpg');
2. A1=imread('gauss.jpg');
3. figure,
4. % mesh(rgb2gray(A));%title('平頂光束能量分佈')
5. mesh(rgb2gray(A1)); %title('高斯光束光強分佈')
6. xlabel('x'),ylabel('y'),zlabel('Intensity')
7. figure,
8. mesh(rgb2gray(A1));xlabel('x'),ylabel('y')
9. view(0,90)
工具方法|Matlab 簡單繪圖與排版

mesh圖.png

工具方法|Matlab 簡單繪圖與排版

俯視視角.png

7 散點圖

主要利用matlab中scatter函數,基本代碼如下:

1. figure,
2. x=0:0.1:2*pi;
3. y=2*sin(x);
4. scatter(x,y)
5. xlabel('x'),ylabel('y')
工具方法|Matlab 簡單繪圖與排版

散點圖.png

將會不定時更新,目的為了同大家多多交流也是自己內容整理的一個備份。如果你看見畫圖方式很好,讓人很容易理解圖中數據的信息,可以分享出來大家一起學習進步。


分享到:


相關文章: