2013-03-21 161 views
3

我有一個(3,4)子圖,每個子圖都顯示散點圖。散點圖的範圍有所不同,所以我的一些圖有軸x(0-30)和y(0-8),但有些圖具有x(18-22)和y(4-7)。我已經將我的xlim設置爲[0 30],ylim設置爲[0 8],但是它將我的座標軸設置爲從不低於0,高於30等。將軸的最小值和最大值設置爲棒圖

如何將我的座標軸設置爲「stick」 (0,0),每個圖的原點,而 「粘」 在8 Y和30 X.

TIA的任何幫助每評論


更新的答案:
仍然有以下代碼相同的問題

%% plot 

for i = 1:num_bins; 

h = zeros(ceil(num_bins),1); 

h(i)=subplot(4,3,i); 

plotmatrix(current_rpm,current_torque) 

end 

linkaxes(h,'xy'); 

axis([0 30 0 8]); 

回答

6

以編程方式設置軸邊界有幾個有用的命令:

axis([0 30 0 8]); %Sets all four axis bounds 

xlim([0 30]); %Sets x axis limits 
ylim([0 8]); %Sets y axis limits 

要僅設置的兩個X限制我通常使用這樣的代碼之一:

xlim([0 max(xlim)]); %Leaves upper x limit unchanged, sets lower x limit to 0 

這需要一個零輸入參數調用約定,返回當前x限制的數組。與ylim一樣。

請注意,所有這些命令都適用於當前軸,因此如果您要創建子圖,則需要在構建圖形時對每個軸執行一次縮放調用。


另一個有用的功能是linkaxes命令。這將動態鏈接兩個圖的軸限制,包括編程調整大小命令(如xlim)和UI操作(如平移和縮放)。例如:

a(1) = subplot(211),plot(rand(10,1), rand(10,1)); %Store axis handles in "a" vector 
a(2) = subplot(212),plot(rand(10,1), rand(10,1)): % 

linkaxes(a, 'xy'); 

axis([0 30 0 8]); %Note that all axes are now adjusted together 
%Also try some manual zoom, pan operations using the UI buttons. 

看你的代碼,後期編輯,您的plotmatrix功能的使用是複雜的事情。 plotmatrix似乎創建自己的軸工作,所以你需要捕獲這些句柄,並調整它們。 (另外,在將來將h = zeros(..)帶出循環)。

要獲得plotmatrix創建軸的句柄,請使用第二個返回參數,如下所示:[~, hAxes]=plotmatrix(current_rpm,current_torque);。然後收集這些以供將來使用。

最後,axis,xlim,ylim命令都作用於當前座標軸(請參閱gca)。但是plotmatrix軸從不是最新的,因此axis命令沒有影響它們。您可以指定要執行的軸,如下所示:axis(hAxis, [0 30 0 8]);

把所有這些組合起來(的加入了一些變量定義,讓您的代碼來執行),這是什麼樣子:

%Define some dummy variables 
current_rpm = rand(20,1)*30; 
current_torque = rand(20,1)*8; 
num_bins = 12; 

%Loop to plot, collecting generated axis handles into "hAllAxes" 
hAllAxes = []; 
for i = 1:num_bins; 
    subplot(4,3,i); 
    [~, hCurrentAxes]=plotmatrix(current_rpm,current_torque); 
    hAllAxes = [hAllAxes hCurrentAxes]; %#ok 
end 
linkaxes(hAllAxes,'xy');  
axis(hAllAxes,[0 30 0 8]); 
+0

感謝reply.I已嘗試了,不過這只是套最小x值爲0,但我仍然得到x軸在18-22範圍內的圖。我需要我的所有小區的規模完全相同。有什麼想法? – mallow 2013-03-21 15:45:35

+2

確保在繪製數據後設置座標軸。 – Molly 2013-03-21 16:02:17

+0

增加了一些更新。我懷疑'linkaxes'真的是你想要的。 – Pursuit 2013-03-21 16:08:25

相關問題