2013-07-31 2 views
3

현재 Matlab 그림에서 축 위치를 이동하려고합니다. 그래서,이 모든 수 있는지 내가 어떤 생각이없는, 또는 어디 답을 찾을 수 있습니다MATLAB에서 다른 축 위치

enter image description here

: 나는 (의 gnuplot에서 이루어졌다)이 비슷한을 달성하고 싶습니다 어떤 도움을 많이 주시면 감사하겠습니다.

+0

이 링크는 도움이 될 것입니다 .http : //www.mathworks.co.kr/kr/help/matlab/creating_plots/individual-axis-control.html –

+0

지금까지 코드를 게시 하시겠습니까? – Dan

+0

지금까지 코드가 없습니다. 나는 이것을 테스트하기에 단순한 표면 그림이 충분할 것이라고 생각한다. – Schnigges

답변

6

흠 ....

그래서하자 줄거리 :

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 

just the line plotted

음, 한 가지 문제는이 도시 한 바와 같이 MATLAB에서 자동 축 좌표 플롯되지 않는다는 것입니다 . 이 여기에 설명되어 있습니다 : How to show x and y axes in a MATLAB graph?

이 (3D)에 사람들을 플롯하려면 저렴한 솔루션입니다 : 그냥 그은 GNU 플롯 같은

now with axis added

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 
는, 3 차원 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; 

이제 상자가 생겼습니다.

now with a box

우리가 원하는 경우 만 영역 Y> 0, Z> 0; 축 명령을 사용할 수 있습니다. 다른 모든 선들을 플로팅 한 후에 축을 사용하면 실제로 모든 것이 엉망이되어 처음부터 한계를 결정할 것입니다. 모두 함께

:

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; 

all done

난 당신이 더 잘 만들 수 있습니다 확신 해요,하지만 난 그게 정말 좋은 시작 생각합니다. 타이핑을 저장하기 위해 모든 혼란을 함수에 넣었습니다.

+0

훌륭한 프레드릭이 보인다! 그건 분명히 내 목표를 달성하기 위해 내가 할 수있는 일이다. 감사! – Schnigges

관련 문제