我目前正在嘗試在Matlab圖中移動軸位置。我想達到類似這樣的東西(這是在做的gnuplot):MATLAB中的不同軸位置
我沒有任何想法,這是否可能在所有的,或者我可能會找到答案,所以任何幫助都感激不盡。
我目前正在嘗試在Matlab圖中移動軸位置。我想達到類似這樣的東西(這是在做的gnuplot):MATLAB中的不同軸位置
我沒有任何想法,這是否可能在所有的,或者我可能會找到答案,所以任何幫助都感激不盡。
嗯....
因此,讓我們的陰謀:
x = zeros(1,21); y = -10:10; z = y/2;
figure; plot3(x,y,z); % a line from (0,-10,-5) to (0,10,5) similar to the example
那麼,一個問題是,MATLAB不會自動繪製座標軸,你已經證明有。 這是這裏討論: How to show x and y axes in a MATLAB graph?
要繪製的(三維),一個廉價的解決方案是:
locs = axis; % get current axis boundaries
hold on;
plot3([locs(1) locs(2)], [0 0], [0 0]); %plot xaxis, a line between(-x,0,0) and (x,0,0);
plot3([0 0], [locs(3) locs(4)], [0 0]); %plot y axis, the line (0,-y,0) and (0,y,0);
plot3([0 0], [0 0], [locs(5) locs(6)]); % plot z axis
hold off
就這樣牛羚情節,3D MATLAB情節「在一個盒子。」與Gnu圖不同,matlab框未被概述。如果你想概述一下,你將不得不畫出這些線......呃。
% lets plot the 12 lines to make this box in black ('k');
hold on;
% hold x constant and plot 4 parallel-to-x lines;
plot3([locs(1) locs(2)], [locs(3) locs(3)], [locs(5) locs(5)],'k'); % (-x,-y,-z) to (x,-y,-z)
plot3([locs(1) locs(2)], [locs(3) locs(3)], [locs(6) locs(6)],'k');
plot3([locs(1) locs(2)], [locs(4) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(1) locs(2)], [locs(4) locs(4)], [locs(6) locs(6)],'k');
% plot parallel-to-y lines
plot3([locs(1) locs(1)], [locs(3) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(1) locs(1)], [locs(3) locs(4)], [locs(6) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(4)], [locs(6) locs(6)],'k');
% plot parallel-to-z lines
plot3([locs(1) locs(1)], [locs(3) locs(3)], [locs(5) locs(6)],'k');
plot3([locs(1) locs(1)], [locs(4) locs(4)], [locs(5) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(3)], [locs(5) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(4) locs(4)], [locs(5) locs(6)],'k');
hold off;
現在我們有箱子;
如果我們只是部位y> 0,Z> 0;我們可以使用axis命令。 在繪製所有其他線條之後使用座標軸真的讓我感到困惑,所以我會在開始時決定你的極限。
一起:
figure;
plot3(x,y,z); % a line from (0,-10,-5) to (0,10,5) similar to the example
locs = axis;
axis([locs(1) locs(2) 0 locs(4) 0 locs(6)]);
locs = axis;
hold on;
% plot axis
plot3([locs(1) locs(2)], [0 0], [0 0]); %plot xaxis, a line between(-x,0,0) and (x,0,0);
plot3([0 0], [locs(3) locs(4)], [0 0]); %plot y axis, the line (0,-y,0) and (0,y,0);
plot3([0 0], [0 0], [locs(5) locs(6)]); % plot z axis
% plot box
% hold x constant and plot 4 parallel-to-x lines;
plot3([locs(1) locs(2)], [locs(3) locs(3)], [locs(5) locs(5)],'k'); % (-x,-y,-z) to (x,-y,-z)
plot3([locs(1) locs(2)], [locs(3) locs(3)], [locs(6) locs(6)],'k');
plot3([locs(1) locs(2)], [locs(4) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(1) locs(2)], [locs(4) locs(4)], [locs(6) locs(6)],'k');
% plot parallel-to-y lines
plot3([locs(1) locs(1)], [locs(3) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(1) locs(1)], [locs(3) locs(4)], [locs(6) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(4)], [locs(5) locs(5)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(4)], [locs(6) locs(6)],'k');
% plot parallel-to-z lines
plot3([locs(1) locs(1)], [locs(3) locs(3)], [locs(5) locs(6)],'k');
plot3([locs(1) locs(1)], [locs(4) locs(4)], [locs(5) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(3) locs(3)], [locs(5) locs(6)],'k');
plot3([locs(2) locs(2)], [locs(4) locs(4)], [locs(5) locs(6)],'k');
hold off;
我相信你可以做的更好,但我認爲這是一個非常好的開始。我會把所有這些亂七八糟的東西放到一個函數中來保存輸入。
看起來不錯弗雷德裏克!這絕對是我可以用來實現我的目標的東西。謝謝! – Schnigges
此鏈接將幫助我希望.http://www.mathworks.co.kr/kr/help/matlab/creating_plots/individual-axis-control.html –
發佈您的代碼到目前爲止? – Dan
到目前爲止我還沒有任何代碼。我想一個簡單的曲面圖就足以測試這個。 – Schnigges