2017-01-03 12 views
2

서브 플로트 그림을 만들려고합니다. 서브 플로트에 전설이 있지만 대신 전체적인 전설이 있어야합니다. subplots에 대한 공통된 전설이있는 방법?

제가 그것이 마지막 부가 적 줄거리에 대한 범례를 첨가 legendposition 기능을 통해 도면에 그 위치를 조정함으로써, 또는 하나의 부가 적 줄거리 도표 위치를 사용하여 어느 가능함을 판독 (예컨대 subplot(2,3,5.5) 단지 범례를 표시). 비록 내가 지금까지 성공하지 못했지만 나는 두 번째 옵션을 선호 할 것이다. 어떤 도움이 필요합니까? 여기

내 코드입니다 :

SLS=figure(); 
hold on 
subplot(3,2,1); 
plot(t,u{1},t,u{2},t,u{3},t,u{4},t,u{5},t,u{6}); 
title('SLS Levels'); 
subplot(3,2,2); 
plot(t,log_u{1},t,log_u{2},t,log_u{3},t,log_u{4},t,log_u{5},t,log_u{6}); 
title('SLS Logarithms'); 
subplot(3,2,3); 
plot(t,I_u{1},t,I_u{2},t,I_u{3},t,I_u{4},t,I_u{5},t,I_u{6}); 
title('SLS Levels with Intercept'); 
subplot(3,2,4); 
plot(t,log_I_u{1},t,log_I_u{2},t,log_I_u{3},t,log_I_u{4},t,log_I_u{5},t,log_I_u{6}); 
title('SLS Log. with Intercept'); 
subplot(3,2,5.5); 
legend('GDP', 'C', 'I', 'G', 'Imp.', 'Exp.'); 
axis off 
+1

당신이 사르 다르의 answe을 인정한다면 좋을 텐데 r, 그래서이 질문은 완전합니다. 괜찮은 해결책을 보여주는 이미지와 upvotes를 감안할 때, 그것은 좋은 수정처럼 보입니다. 그렇게 생각한다면 투표 버튼으로 녹색 화살표를 클릭하십시오. – Wolfie

답변

14

코드 :

% Plotting some random data and storing their handles 
subplot(3,2,1);  h1 = plot(randperm(10),randperm(10),'ko-'); 
subplot(3,2,2);  h2 = plot(randperm(10),randperm(10),'g+-'); 
subplot(3,2,3);  h3 = plot(randperm(10),randperm(10),'md-'); 
subplot(3,2,4);  h4 = plot(randperm(10),randperm(10),'rv-.'); 

hL = subplot(3,2,5.5); 
poshL = get(hL,'position');  % Getting its position 

lgd = legend(hL,[h1;h2;h3;h4],'RandomPlot1','RandomPlot2','RandomPlot3','RandomPlot4'); 
set(lgd,'position',poshL);  % Adjusting legend's position 
axis(hL,'off');     % Turning its axis off 

출력 :

enter image description here

+0

제 걸음 거리는 하위 그림에서 '0.5'단위로 증가 할 수 있다는 것을 알았습니다! 깔끔한 해결책. – Wolfie

+0

@Wolfie 감사합니다. Btw는 단지 '0.5'로 제한되지 않습니다. [1 2]와 같은 범위를 지정할 수 있습니다. [이 질문 (https://stackoverflow.com/questions/37465980/plotting-using-subplot-with-different-x-axis-for-each-plot)을 참조하십시오. [[1 3.65] '도 사용할 수 있습니다. 둘 이상의 열에 걸쳐있는 이상한 조합도 가능합니다. –