행에 밀접하게 간격을두고 각 열에 간격을두고 배치 된 하위 플로팅을 생성해야하는 다음과 같은 함수가 있습니다.Matlab 서브 플로트가 위치 변경시 사라집니다.
function fill_graph()
for x=1:3
for y=1:3
ax = subplot(3,3,(x-1)*3+y);
left_buffer = .05;
right_buffer = .025;
x_pos = left_buffer+(x-1)*(1/3*(1-left_buffer-right_buffer));
width = 1/3*(1-left_buffer-right_buffer);
bottom_buffer = .1;
top_buffer = .05;
spacing=.07;
height = (1/3)*(1-2*spacing-top_buffer-bottom_buffer);
y_pos = bottom_buffer+(y-1)*(spacing+height);
set(ax,'position',[x_pos,y_pos,width,height])
if x>1
set(gca,'yTickLabel','');
ylabel('');
end
if y>1 || x~=2
xlabel('')
end
end
end
I 함수, 플롯의 맨 아래 행이 모두 사라 중간 행의 가장 왼쪽에있는 음모를 실행하면 : 그것은 또한 당신이 가장자리에 대한 크기를 버퍼 설정할 수 있습니다.
이것은 아마도 서브 플로트가 서로 겹칠 때 사라질 것이라는 점과 관련이 있습니다. 그러나 간격을 얼마나 멀리 설정했는지에 관계없이 맨 아래 줄이 나타나지 않습니다 (내가 찾은 유일한 방법은 아래쪽 버퍼를 .34라고 설정하는 것인데, 이는 시간의 일부만 작동합니다.) 나는 그것들 중 어느 것도 겹치지 않도록해야하는 '외면'으로 '위치'를 전환하려고 시도했지만, 그 중 하나는 작동하지 않는 것으로 보인다.
나는 Second subplot disappearing을 보았습니다. 그러나 그 방식으로 위치를 지정하면 (subplot('position',x_pos,y_pos,width,height)
), 이미있는 플롯 위로 씁니다. 만약 내가 그 코드 을 전에 배치한다면, 플롯 명령을 내리는 순간 플롯의 크기가 조정됩니다.
훌륭한 조언. 매력처럼 일했습니다. 고맙습니다. –