У меня есть следующая функция, которая должна создавать подзаголовки, которые плотно расположены в пределах строки и распределены с интервалом в каждом столбце. Она также позволяет установить буфер размеров для ребер:Matlab subplot исчезает при перестановке
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
Когда я запускаю функцию, нижний ряд участков и крайний левый участок на среднем ряду все исчезают.
Я знаю, что это, вероятно, связано с тем, единственный способ, которым я нашел, - установить нижний буфер выше 0,34, который работает только некоторое время). Я попытался переключить «позицию» на «внешнее», что должно сделать так, чтобы ни одна из них не перекрывалась, но это тоже не работает.
Я видел Second subplot disappearing, но когда я указываю позицию таким образом (subplot('position',x_pos,y_pos,width,height)
), он пишет над участками, которые уже есть. Если я поместил этот код до Я планирую, размеры участка изменяются, как только я выдаю команду графика.
Отличный совет. Работал как шарм. Спасибо. –