Matlab plotyy函數的使用及問題總結


 

 

 MATLAB函數,用來繪制雙縱坐標圖。

調用格式:

  1.plotyy(X1,Y1,X2,Y2):以左、右不同縱軸繪制X1-Y1、X2-Y2兩條曲線。
  2.plotyy(X1,Y1,X2,Y2,FUN1):以左、右不同縱軸把X1-Y1、X2-Y2兩條曲線繪制成FUN1指定形式的兩條曲線。
  3.plotyy(X1,Y1,X2,Y2,FUN1,FUN2):以左、右不同縱軸把X1-Y1、X2-Y2兩條曲線繪制成FUN1、FUN2指定的不同形式的兩條曲線。
  4.[AX,H1,H2]=plotyy(...):返回AX中創建的兩個坐標軸的句柄以及H1和H2中每個圖形繪圖對象的句柄。AX(1)為左側軸,                 AX(2)為右側軸。

1.左縱軸用於X1-Y1數據對,右縱軸用於X2-Y2數據對。
  2.軸的范圍、刻度都自動產生。如果要人工設置,必須使用axis函數。
  3.FUN、FUN1、FUN2可以是MATLAB中所有接受X-Y數據對的二維繪圖指令,如plot函數。

 

matlab plotyy xtick的橫坐標的設置問題  

 1 [AX,H1,H2] = plotyy(24,0,0,0,'plot');
 2 set(AX(1),'XColor','k','YColor','b');
 3 set(AX(2),'XColor','k','YColor','r');
 4 set(get(AX(1),'Ylabel'),'String','Plasma Glucose (mg/dl)') 
 5 set(get(AX(2),'Ylabel'),'String','Plasma Insulin (pmol/l)') 
 6 set(AX(1),'ylim',[50 250])
 7 set(AX(2),'ylim',[0 600])
 8 set(AX(1),'ytick',50:50:250)
 9 set(AX(2),'ytick',0:100:600)
10 
11 set(AX,'xlim',[0 24])
12 set(AX,'xtick',0:2:24)
13 
14 
15 
16 grid on
17 xlabel('Time (hour)')
View Code

如下圖:

 

 

Matlab plotyy畫雙縱坐標圖實例:

 1 x = 0:0.01:20;
 2 y1 = 200*exp(-0.05*x).*sin(x);
 3 y2 = 0.8*exp(-0.5*x).*sin(10*x);
 4 [AX,H1,H2] = plotyy(x,y1,x,y2,'plot');
 5 
 6 set(AX(1),'XColor','k','YColor','b');
 7 set(AX(2),'XColor','k','YColor','r');
 8 
 9 HH1=get(AX(1),'Ylabel');
10 set(HH1,'String','Left Y-axis');
11 set(HH1,'color','b');
12 
13 HH2=get(AX(2),'Ylabel');
14 set(HH2,'String','Right Y-axis');
15 set(HH2,'color','r');
16 
17 set(H1,'LineStyle','-');
18 set(H1,'color','b');
19 set(H2,'LineStyle',':');
20 set(H2,'color','r');
21 
22 legend([H1,H2],{'y1 = 200*exp(-0.05*x).*sin(x)';'y2 = 0.8*exp(-0.5*x).*sin(10*x)'});
23 xlabel('Zero to 20 \musec.');
24 title('Labeling plotyy');
View Code

 

 Q:右邊用藍色圈起來的tick能去掉嗎?由於用plotyy畫圖,為了使圖盡量地顯示出來,用了set(AX(1),'YLimMode','auto'),但這樣可能會導致左邊AX(1)和右邊AX(2)的tick的間距不一樣,影響美觀。或者說能不能使plotyy畫出的圖兩邊的tick間距是一樣的,這樣在圖形右邊的tick就會重合在一起.

A:如果只是想讓plotyy的圖美一些,可以使用其如下形式的調用方式:
[AX,H1,H2] = plotyy(...)
其中AX(2)就是右邊Axes對象的句柄,拿到它以后就可以set或者get來處理了,也可以把其ytick關掉。

A:也可以用line語句來畫,就沒有左邊和上邊的線了。

Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2應該怎么寫?

A:這兩個FUN代表plotyy不一定要用兩個plot,比如下面的例子,一條曲線用plot,一條用semilogy

x1=1:0.1:100;
x2=x1;
y1=x1;
y2=x2.^3;
plotyy(x1,y1,x2,y2,@plot,@semilogy)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM