2015-10-06 168 views
1

我想繪製兩個不同的數量,電壓和電流,在一個圖(或相同的軸空間,如果我們想成爲技術)。我嘗試使用plotyy,但當我手動設置限制/滴答時,它會在右側留下錯誤的刻度標記,如this post中所述。在過去的一年中,在熟練掌握圖形處理技術後,我認爲必須有辦法讓事情掌握在自己手中。以下是我已經試過:MatLab處理圖形 - 使用兩個y軸縮放

% Voltage axes setup 
axHandle(1) = ... 
    axes('XLim',[0,24],'XTick',0:24,'YLim',[0, 18],'YTick',0:18, ... 
    'Parent', figHandle(1)); 
xlabel(axHandle(1),'Time [local-military]') 
ylabel(axHandle(1),'Voltage [volts]') 
hold(axHandle(1),'on') 

% Current axes setup 
axHandle(2) = ... 
    axes('YAxisLocation','right', 'Color','none', ... 
    'XLim',[0,24],'XTick',[],'YLim',[0 1.7],'YTick',0:0.1:1.7, ... 
    'Parent', figHandle(1)); 
ylabel(axHandle(2),'Current [amps]') 
hold(axHandle(2),'on') 

% Plot data 
voltPlotHandle = plot(axHandle(1), timeVec, voltVec, 'b.'); 
currPlotHandle = plot(axHandle(2), timeVec, currVec, 'r.'); 

雖然結果看起來相當乍看之下,當我去使用縮放工具,我遇到一個問題:只有第二軸是活動的,因此電壓曲線依然未放大。

無論plotyy在後臺做什麼,它都沒有這個問題。任何解決方案

回答

2

嘗試linking the axis,所以它們在平移/縮放時共享相同的限制。

linkaxes([axHandle(1) axHandle(2)],'xy'); 
+0

對不起,我以爲他一開始工作,但這實際上使兩個軸的限制(左和右)相同。我期望在每個軸上保持不同的限制。任何其他想法? –

+0

別擔心。只需從上面的代碼中刪除'y'。在這種情況下,您只想鏈接它們共有的軸,即x軸(時間)。如果有效,我會相應地更新答案 – brodoll