문제

Matlab에서 물건을 플로팅하면 가장 최근에 플롯 된 데이터 시리즈가 이미있는 것 위에 놓여 있습니다. 예를 들어:

figure; hold on
plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1])
plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0])

여기에서 빨간색 선은 파란색 선 위에 표시됩니다 (여기서 교차). "얼마나 깊은"라인이 그려져있는 방법이 있습니까? ~ 아래에 이미 거기에 무엇이 있습니까?

도움이 되었습니까?

해결책

사용 Uistack 명령. 예를 들어:

h1 = plot(1:10, 'b');
hold on;
h2 = plot(1:10, 'r');

파란색 선 위에 빨간색 선이 표시된 두 줄을 플로팅합니다. 그런 다음하는 경우 :

uistack(h1);

파란색 선이 전면으로 가져옵니다.

다른 팁

현재 축의 어린이 벡터 순서를 설정하여이를 달성 할 수 있습니다. 다음을 수행하는 경우 :

figure; hold on
h1 = plot(sin(linspace(0,pi)),'linewidth',4,'color',[0 0 1]);
h2 = plot(cos(linspace(0,pi)),'linewidth',4,'color',[1 0 0]);
h = get(gca, 'Children');

H는 H1과 H2를 포함하는 벡터임을 알 수 있습니다. 그래픽 스태킹 순서는 h의 핸들의 순서로 표시됩니다. 이 예에서는 스태킹 순서를 뒤집기 위해 다음을 수행 할 수 있습니다.

h = flipud(h);
set(gca, 'Children', h);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top