Как изменить подзаговоры в Matlab? - PullRequest
0 голосов
/ 05 апреля 2020

Я хотел сюжет 7x3xi. После использования этого кода ниже:

subplot(7,3,1)
    figure(1);
    hold on;
scatter(x,y,12,'k','filled');

[pp,s] = polyfit(x,y,1);
r_squared = 1 - s.normr^2 / norm(x-mean(y))^2;
str = {sprintf('y = %.2fx+%.2f',pp(1),pp(2)),sprintf('R^2 = %.2f',r_squared)};
annotation('textbox', [0.2, 0.75, .1, .1], 'String',str ,'FitBoxToText',...
    'on','fontname','Cambria Math','HorizontalAlignment', 'center',...
    'FontSize',8,'BackgroundColor', 'white');
xlabel('Observed precipitation (mm)','FontSize',8)
ylabel('Modeled precipitation (mm)','FontSize',8)
set(gca,'fontname','Times New Roman','FontSize',8)  % Set it to times
box on;
grid on
hTrend = refline(pp(1), pp(2)); % Trend line
hrefline = refline([1 0]); % 45 degree refline
hrefline.Color = 'k';
axis normal

Я увидел эту цифру: Изображение (повторите этот код для всех (7x3xi). Вы можете увидеть более чем плохо, а с подзаговорами я увидел мою аннотацию для каждого сюжета исчезает и существует только одна аннотация! Я хочу, чтобы моя поддержка была чем-то вроде this . Буду признателен, если вы скажете мне, какой вариант у меня есть. С наилучшими пожеланиями.

1 Ответ

0 голосов
/ 05 апреля 2020

для создания графиков с вложенными графиками необходимо использовать al oop, используя следующую структуру псевдокода. ключ заключается в том, чтобы вызвать подзаговор (nx, ny, idx), чтобы активировать каждый подзаговор как холст для рисования.

figure;
nx=7; ny=3;
for i=1:nx
   for j=1:ny
      subplot(nx,ny,i*ny+j); hold on;
      scatter(...);
      polyfit(...);
      annotation(...);
   end
end
...