Matlab plotyy畫雙縱坐標圖實例
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
[AX,H1,H2] = plotyy(x,y1,x,y2,’plot’);
set(AX(1),’XColor’,’k’,’YColor’,’b’);
set(AX(2),’XColor’,’k’,’YColor’,’r’);
HH1=get(AX(1),’Ylabel’);
set(HH1,’String’,’Left Y-axis’);
set(HH1,’color’,’b’);
HH2=get(AX(2),’Ylabel’);
set(HH2,’String’,’Right Y-axis’);
set(HH2,’color’,’r’);
set(H1,’LineStyle’,’-‘);
set(H1,’color’,’b’);
set(H2,’LineStyle’,’:’);
set(H2,’color’,’r’);
legend([H1,H2],{‘y1 = 200*exp(-0.05*x).*sin(x)’;’y2 =
0.8*exp(-0.5*x).*sin(10*x)’});
xlabel(‘Zero to 20 musec.’);
title(‘Labeling plotyy’);
Q:右邊用藍色圈起來的tick能去掉嗎?由于用plotyy畫圖,為了使圖盡量地顯示出來,用了set(AX(1),’YLimMode’,’auto’),但這樣可能會導致左邊AX(1)和右邊AX(2)的tick的間距不一樣,影響美觀?;蛘哒f能不能使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)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MATLAB畫雙縱坐標
具有兩個縱坐標標度的圖形
在MATLAB中,如果需要繪制出具有不同縱坐標標度的兩個圖形,可以使用plotyy繪圖函數。調用格式為:
plotyy(x1,y1,x2,y2)
其中x1,y1對應一條曲線,x2,y2對應另一條曲線。橫坐標的標度相同,縱坐標有兩個,左縱坐標用于x1,y1數據對,右縱坐標用于x2,y2數據對。
雙y軸坐標可以用plotyy(x,y1,x,y2)來實現
雙x坐標可以用
set(gca,’xaxislocation’,’bottom’,’xticklabel’,{‘0′,’1′,’2′,’3′,’4’})
(假設x軸的標注為1,2,3,4)
set(gca,’xaxislocation’,’top’,’xticklabel’,{‘0′,’1′,’2′,’3′,’4’})
進行相應的設置
【 * 例 10.7.3 -1 】制作一個雙坐標系用來表現高壓和低溫兩個不同量的過渡過程。
tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp)); % 壓力數據
tt=(0:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*cos(tt)); %
溫度數據
% 產生雙坐標系圖形
clf reset,h_ap=axes(‘Position’,[0.13,0.13,0.7,0.75]);
%<4>
set(h_ap,’Xcolor’,’b’,’Ycolor’,’b’,’Xlim’,[0,5],’Ylim’,[0,15]);
nx=10;ny=6; %<6>
pxtick=0:((5-0)/nx):5;pytick=0:((15-0)/ny):15;
%<7>
set(h_ap,’Xtick’,pxtick,’Ytick’,pytick,’Xgrid’,’on’,’Ygrid’,’on’)
h_linet=line(tp,yp,’Color’,’b’);
%<9>
set(get(h_ap,’Xlabel’),’String’,’ 時間 /rightarrow (分) ‘)
set(get(h_ap,’Ylabel’),’String’,’ 壓力 /rightarrow(/times10 ^{5}
Pa )’)
h_at=axes(‘Position’,get(h_ap,’Position’));
%<12>
set(h_at,’Color’,’none’,’Xcolor’,’r’,’Ycolor’,’r’);
%<13>
set(h_at,’Xaxislocation’,’top’)
%<14>
set(h_at,’Yaxislocation’,’right’,’Ydir’,’rev’)
%<15>
set(get(h_at,’Xlabel’),’String’,’/fontsize{15}/fontname{ 隸書 } 時間
/rightarrow (分) ‘)
set(get(h_at,’Ylabel’),’String’,’ ( {/circ}C )/fontsize{15}
/leftarrow /fontname{ 隸書 } 零下溫度 ‘)
set(h_at,’Ylim’,[0,210]) %<18>
line(tt,yt,’Color’,’r’,’Parent’,h_at)
%<19>
xpm=get(h_at,’Xlim’); %<20>
txtick=xpm(1):((xpm(2)-xpm(1))/nx):xpm(2);
%<21>
tytick=0:((210-0)/ny):210;
%<22>
set(h_at,’Xtick’,txtick,’Ytick’,tytick)
%<23>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
實例(已驗證):
clc;
clear all;
close all;
x=0:0.1:2*pi;
y1=sin(x);
y2=cos(x);
[AX]=plotyy(x,y1,x,y2);
set(get(gca,’xlabel’),’string’,’X-axis’);
set(get(AX(1),’Ylabel’),’string’,’left Y-axis’);
set(get(AX(2),’Ylabel’),’string’,’right Y-axis’);
set(gca,’xTick’,[0:0.5:7]);
set(AX(1),’yTick’,[-1:0.2:1]);
set(AX(2),’yTick’,[-1:0.5:1]);
尚存在問題:這種設置方法,對各個軸的最小刻度單位可以設置,但是刻度范圍(x取(0~7),y1取(-1~1))不能設置。
2010-12-23修改
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clc
clear all
close all
runoff=[10700 11400 15800 22900 43100 40700 50500 46000 41800
35000];
sed=[0.105 0.094 0.156 1.2640.363 0.429 0.731 0.682 0.654 0.290];
m=1:10;
[ax,h1,h2]=plotyy(m,runoff,m,sed); %h– line handle
set(get(ax(1),’Ylabel’),’string’,’Runoff (m^3/s))’,’color’,’r’)
%y1
set(get(ax(2),’Ylabel’),’string’,’Sediment concentration
(kg/m^3)’,’color’,’k’) %y2
xlabel(‘Month’)
set(h1,’linestyle’,’-‘,’color’,’r’);set(h2,’linestyle’,’- -‘,’color’,’k’);
legend([h1 h2],’runoff’,’sediment concentration’) %標注兩條線
legend(‘boxoff’)
% box off
set(ax(:),’Ycolor’,’k’) %設定兩個Y軸的顏色為黑色
set(ax(1),’ytick’,[0:10000:100000]); %設置y軸間隔
set(ax(2),’ytick’,[0:0.1:1.5])
set(ax,’xlim’,[1 12]) % 設置x軸范圍
hold on
scatter(ax(1),4,22900,’r*’)
axes(ax(2));
hold on
scatter(4,1.264,’ro’)
2011年4月22日新增
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
我的電腦的flash打不開了怎么辦?瀏覽器有時會提示Flash版本太低,無法使用。該解決方案包括:1.首先,檢查一下自己有沒有安裝。如果你不 t,下載安裝。2.開始菜單/控制面板/Flash播放器/更新/立即更新。按確定就行了。3.還有一種方法就是用騰訊電腦管家來修復。打開管家后,你會發現電腦診所的Flash版本太低,然后馬上點擊修復。flash插件安裝上也不能播放怎么弄?系統中可能有緩存,或者瀏...
vivo小布同學怎么喚醒?1/4點擊小布再打開手機設置界面,然后點擊Breeno選項。2/4點擊語音在小布設置界面然后點擊Breeno語音選項。3/4你選擇沉睡在新界面再點上方語音操控選項。4/4自動打開功能在新界面再開啟語音喚醒功能,即可結束。vivo手機怎么打開語音助手?伴隨著科學技術的高速發展,我們的手機更新換代很快地,新的功能,新的使用層出不窮,有些時候一些使用技巧我們都需要慢慢慢慢才能能...
IS的頻道怎么鎖?在子選擇頻道上點擊右鍵,點編輯其他頻道,看到那個登錄密碼和金額限制,然后在帳號和密碼里面輸入你想設置里的登陸密碼,點確定一之后久鎖上了找到IS語音聊天記錄文件?在IS7.0頻道窗口有個歷史政治消息傳來點開就還可以見到了,IS語音升級按什么計算?1、用戶注冊后,踏入頻道一后才算在線等,只登陸賬號后不進入選擇頻道或者踏入進入頻道后經常掉線了,都不可能計算出在線100積分。2、每1小時...