1. 程式人生 > >Matlab畫圖總結(2)

Matlab畫圖總結(2)

(1)疊加繪圖模式

單獨使用hold可以切換當前的繪圖疊加模式,將當前繪圖視窗的疊加模式從on改變為off,或者從off改變為on。

Hold all 不但實現hold on的功能,使得當前繪圖視窗的疊加繪圖模式開啟,而且使新的繪圖指令依然迴圈初始設定的顏色迴圈序和線型迴圈序。

例:

>>  x=-5:5;

y1=randn(size(x));

y2=normpdf(x);

>>subplot(2,1,1)

>> hold

Current plotreleased

>>plot(x,y1,'b')

>>plot(x,y2,'r')

>>title('hold off mode')

>>subplot(2,1,2)

>> hold on

>>plot(x,y1,'b')

>>plot(x,y2,'r')

>>title('hold on mode')


2)設定座標軸和網格線

Matlab中對座標軸的設定包括設定座標軸範圍,標度和縱橫比

座標軸範圍有四種設定模式:

    1.Axis([xmin xmax ymin ymax])可以設定座標軸範圍在制定的區間

    2.Axis auto 將當前繪圖區的座標軸範圍設定為matlab自動調整的區間

    3.Axis manual 凍結當前座標軸範圍,以後疊加繪圖都在當前座標範圍內顯示

    4.Axis tight採用緊密模式設定當前座標軸範圍,即以使用者資料範圍為座標軸範圍。

座標軸比例有三種模式:

    1.axis equal 設定當前座標軸的橫縱軸具有相同的單位長度,即等比例座標軸;

    2.Axis square 以當前座標軸範圍為基礎,將座標軸區域調整為方格型

   3.Axis normal自動調整縱橫軸比例,使當前座標軸範圍內的圖形顯示達到最佳效果

   注:設定座標軸範圍的選項和設定座標軸比例的選項可以在axis函式中聯合使用,

            matlab繪圖將預設的座標軸設定為axis auto normal

座標軸範圍和比例設定

例;

>>t=0:0.01*pi:2*pi;

>> x=sin(t);

>> y=cos(t);

>> for i=1:9

       subplot(3,3,i)

       plot(x,y)

end

>>subplot(3,3,1);axis auto normal;title('axis auto normal')

>>subplot(3,3,2);axis([-2 2 -1.5 1.5]);axis normal;title('axis[] normal')

>>subplot(3,3,3);axis tight normal;title('axis tight normal')

>>  subplot(3,3,4);axis auto square;title('axisaut osquare')

>>subplot(3,3,5);axis([-2 2 -1.5 1.5]);axis square;title('axis[]  square')

>>  subplot(3,3,6);axis auto square;title('axisaut osquare')

>>  subplot(3,3,7);axis auto equal;title('axisaut equal')

>>  subplot(3,3,8);axis([-2 2 -1.5 1.5]);axisequal;title('axis[]  equal')

>>  subplot(3,3,6);axis tight square;title('axistight square')

>>  subplot(3,3,9);axis tight equal;title('axisauto equal')

>>


(3) 設定座標軸顯示刻度

例:

 x=0:0.1:6;

>>y=sin(x).*cos(3*x);

>> plot(x,y)

>>set(gca,'XTick'[0 0.5*pi pi 1.5*pi 6 2*pi])

>>set(gca,'XTick',[0 0.5*pi pi 1.5*pi 6 2*pi])

>> set(gca,'XTickLabel',{'0','pi/2','pi','3pi/2','6','2pi'})


(4)對數/半對數座標系繪圖

Matlab中和對數,半對數座標系相關的繪圖函式

函式

說明

semilogx

X軸採用對數刻度的半對數座標系繪圖函式

semilogy

Y軸採用對數刻度的半對數座標系繪圖函式

loglog

X和y 軸都採用對數刻度

(1)對數或半對數座標系作圖

例:

 x=0:0.1:10;

>>y=exp(-x);

>>subplot(2,2,1);plot(x,y,'r');title('plot')

>>subplot(2,2,2);semilogx(x,y,'--k');title('semilogx')

>>subplot(2,2,3);semilogx(x,y,'-.g','LineWidth',1.5);title('semilogy')

>>subplot(2,2,4);loglog(x,y,':b','LineWidth',0.5');title('loglog')


雙縱軸繪圖:

     Matlab 中提供了plotyy函式可以實現雙縱軸繪圖,對兩組資料分別採用左側縱軸和右側縱軸,

他們的座標軸範圍各自獨立

Plotyy 函式的基本語法格式:

      Plotyy(x1,y1,x2,y2,‘function1’,‘function2’)

為了便於設定左右座標軸的屬性,plotyy函式還提供了座標軸控制代碼返回值,使用格式為:

      【AX,H1,H2】=plotyy(...)

其中AX(1)為左側座標軸控制代碼,AX(2)為右側座標軸控制代碼,H1為左側座標軸下繪製的圖線的控制代碼,

H2為右側座標軸下繪製的圖線的控制代碼,使用set函式以這些控制代碼為輸入引數,就可以方便的設定座標軸和曲線的屬性

例:

 t=0:0.02*pi:7;

>> x=cos(t);

>> y=exp(t);

>>[ax,ha,hb]=plotyy(t,x,t,y)

ax =

  174.0011 176.0011

ha =

175.0021

hb =

  177.0016

>>set(ax(1),'XTick',[0 pi 2*pi],'XTickLabel',{'0','pi','2pi'})

>>set(ha,'LineStyle','--','Color','r')

>>set(ax(2),'XTick',[0 4 7],'XTickLabel',{'0','4','7'})

>>set(ax(2),'YLim',[0 1500],'YTick',[0 exp(4) exp(7) 1500],...

'YTickLabel',{'0','e^4','e^7','1500'})

>> 


(5)繪圖視窗開關控制函式

Matlab中的大多數圖形的屬性設定都需要通過set函式來完成,但也有少部分圖形視窗的元素可以通過開關函式進行控制

1.axis on 和axis off可以顯示或者隱藏當前座標軸,座標軸標籤和座標軸刻度

2.Box on和box off 可以顯示或者隱藏當前座標軸的邊界線

3.Grid on 和grid off 可以顯示或者隱藏當前座標軸下的網格線

例:

 x=0:0.1:5;

>>y=10*exp(-x).*x.^2;

>>subplot(4,2,1)

>> plot(x,y)

>> axis on

>>title('axis on')

>>subplot(4,2,2)

>> plot(x,y)

>> axis off

>>title('axis off')

>>subplot(4,2,3)

>> plot(x,y)

>> box on

>>title('box on')

>>subplot(4,2,4)

>> plot(x,y)

>> box off

>>title('box off')

>>subplot(2,1,2)

>> plot(x,y)

>> grid on

>>title('grid on')