2017-02-22 43 views
1

我有兩個v_qv_qb繪製在不同的圖中,但是當我將它們繪製在同一個圖中時,它們的值會發生變化。爲什麼?使用繪圖時的座標軸會發生變化

這是Matlab代碼(數據來自簡介軟件):

v = [ 0.000E+00 2.449E-02 4.898E-02 7.347E-02 9.796E-02 1.224E-01 1.469E-01 1.714E-01 1.959E-01 2.204E-01 2.449E-01 2.694E-01 2.939E-01 3.184E-01 3.429E-01 3.673E-01 3.918E-01 4.163E-01 4.408E-01 4.653E-01 4.898E-01 5.143E-01 5.388E-01 5.633E-01 5.878E-01 6.122E-01 6.367E-01 6.612E-01 6.857E-01 7.102E-01 7.347E-01 7.592E-01 7.837E-01 8.082E-01 8.327E-01 8.571E-01 8.816E-01 9.061E-01 9.306E-01 9.551E-01 9.796E-01 1.004E+00 1.029E+00 1.053E+00 1.078E+00 1.102E+00 1.127E+00 1.151E+00 1.176E+00 1.200E+00]; 
v_qb = [ 1.200E+00 1.200E+00 1.200E+00 1.200E+00 1.199E+00 1.199E+00 1.198E+00 1.197E+00 1.196E+00 1.194E+00 1.190E+00 1.185E+00 1.178E+00 1.167E+00 1.153E+00 1.134E+00 1.108E+00 1.076E+00 1.034E+00 9.790E-01 9.080E-01 8.408E-01 8.005E-01 7.755E-01 7.578E-01 7.440E-01 7.327E-01 7.231E-01 7.147E-01 7.073E-01 7.006E-01 6.946E-01 6.890E-01 6.839E-01 6.792E-01 6.749E-01 6.709E-01 6.671E-01 6.636E-01 6.603E-01 6.572E-01 6.543E-01 6.515E-01 6.489E-01 6.463E-01 6.438E-01 6.415E-01 6.392E-01 6.370E-01 6.348E-01]; 
v_q = [ 0.000E+00 2.449E-02 4.898E-02 7.347E-02 9.796E-02 1.224E-01 1.469E-01 1.714E-01 1.959E-01 2.204E-01 2.449E-01 2.694E-01 2.939E-01 3.184E-01 3.429E-01 3.673E-01 3.918E-01 4.163E-01 4.408E-01 4.653E-01 4.898E-01 5.143E-01 5.388E-01 5.633E-01 5.878E-01 6.122E-01 6.367E-01 6.612E-01 6.857E-01 7.102E-01 7.347E-01 7.592E-01 7.837E-01 8.082E-01 8.327E-01 8.571E-01 8.816E-01 9.061E-01 9.306E-01 9.551E-01 9.796E-01 1.004E+00 1.029E+00 1.053E+00 1.078E+00 1.102E+00 1.127E+00 1.151E+00 1.176E+00 1.200E+00]; 

%plotting together 
figure(1) 
plot(v_qb,v_q) 
hold on 
plot(v,v_qb) 

%plotting separately 
figure(2) 
plot(v_qb,v_q) 
figure(3) 
plot(v,v_qb) 
+1

你是如何在不同的地塊策劃呢?請修改您的問題,以便其他人可以嘗試複製您的問題。 – horchler

+0

我根據您的指令修改了代碼。謝謝 –

+0

對我來說工作很好。圖(2)的x軸與圖(1)不同,圖(3)的y軸與圖(1)不同。這只是因爲這兩塊地塊可以放在一起。根據文檔,「hold」不影響軸自動量程。如果你想自定義軸的值,使用'axis'。 – horchler

回答

1

這是正常現象。 figure(2)的x軸和figure(3)的y軸與figure(1)中的不同,因此兩個圖的全部範圍可以合在一起。根據文檔和幫助,hold不影響軸自動量程:

MATLAB®調整軸限制,刻度線和刻度標籤以顯示全部數據範圍。

如果要自定義軸值,請使用axis函數。特別是,您可以使用axis manual防止軸範圍從你的第一個電話後變爲plot

figure(1) 
plot(v_qb,v_q) 
hold on 
axis manual 
plot(v,v_qb) 

using axis manual

這當然將左側夾(0〜0.6)的第二個呼叫的到plot。不確定你想要什麼,所以請玩弄選項。

+0

這是否回答了您的問題? – horchler

1

這是解決方案:

% Matlab M-file converted by [Custom WaveView] saved 08:19:49 Wed Feb 22 2017 
v= [ 0.000E+00 2.449E-02 4.898E-02 7.347E-02 9.796E-02 1.224E-01 1.469E-01 1.714E-01 1.959E-01 2.204E-01 2.449E-01 2.694E-01 2.939E-01 3.184E-01 3.429E-01 3.673E-01 3.918E-01 4.163E-01 4.408E-01 4.653E-01 4.898E-01 5.143E-01 5.388E-01 5.633E-01 5.878E-01 6.122E-01 6.367E-01 6.612E-01 6.857E-01 7.102E-01 7.347E-01 7.592E-01 7.837E-01 8.082E-01 8.327E-01 8.571E-01 8.816E-01 9.061E-01 9.306E-01 9.551E-01 9.796E-01 1.004E+00 1.029E+00 1.053E+00 1.078E+00 1.102E+00 1.127E+00 1.151E+00 1.176E+00 1.200E+00]; 
v_qb = [ 1.197E+00 1.196E+00 1.194E+00 1.190E+00 1.185E+00 1.175E+00 1.161E+00 1.139E+00 1.105E+00 1.054E+00 9.774E-01 8.640E-01 7.241E-01 6.262E-01 5.471E-01 4.680E-01 3.832E-01 2.921E-01 1.988E-01 1.248E-01 8.988E-02 7.198E-02 6.078E-02 5.303E-02 4.734E-02 4.299E-02 3.957E-02 3.680E-02 3.453E-02 3.263E-02 3.101E-02 2.963E-02 2.843E-02 2.739E-02 2.647E-02 2.566E-02 2.495E-02 2.433E-02 2.377E-02 2.328E-02 2.285E-02 2.247E-02 2.213E-02 2.183E-02 2.155E-02 2.131E-02 2.108E-02 2.088E-02 2.069E-02 2.052E-02]; 
v_q = [ 0.000E+00 2.449E-02 4.898E-02 7.347E-02 9.796E-02 1.224E-01 1.469E-01 1.714E-01 1.959E-01 2.204E-01 2.449E-01 2.694E-01 2.939E-01 3.184E-01 3.429E-01 3.673E-01 3.918E-01 4.163E-01 4.408E-01 4.653E-01 4.898E-01 5.143E-01 5.388E-01 5.633E-01 5.878E-01 6.122E-01 6.367E-01 6.612E-01 6.857E-01 7.102E-01 7.347E-01 7.592E-01 7.837E-01 8.082E-01 8.327E-01 8.571E-01 8.816E-01 9.061E-01 9.306E-01 9.551E-01 9.796E-01 1.004E+00 1.029E+00 1.053E+00 1.078E+00 1.102E+00 1.127E+00 1.151E+00 1.176E+00 1.200E+00]; 
%plotting together 
figure(2) 
plot(v_qb,v_q) 
hold on 
plot(v,v_qb) 
hold on 
grid on  
x = 0:1.2/10:1.2; 

figure (3) 
for b=-2:0.5:2 
    plot(x, x+b); 
    hold on 
end 
hold on 
plot(v_qb,v_q) 
hold on 
plot(v,v_qb) 
相關問題