Как связать каждую левую и правую ось Y на графиках с двумя осями Y - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть фигура, содержащая два подзаговора. Их оси хранятся следующим образом:

for i = 1:n
    ax(i) = subplot(n,1,i);
end

после построения я попытался связать оси вместе. Когда я делаю:

yyaxis right; linkaxes(ax);
yyaxis left;  linkaxes(ax);

Я получаю совпадающие оси правой стороны, но тогда левая сторона первой фигуры связывается с той же шкалой, что и две оси правой стороны, а не с другой левой осью.

Я также пробовал:

yyaxis right; linkprop(ax, 'Ylim')
yyaxis left;  linkprop(ax, 'Ylim')

, что приводит к той же проблеме. Я пытаюсь найти простой способ соединить левую ось Y вместе, а правую ось Y соединить вместе, но остаться независимой от противоположных сторон оси. Любая помощь будет изумительной.

1 Ответ

0 голосов
/ 21 июня 2018

«linkprop» сохраняет свойства по нескольким вызовам (до тех пор, пока вы определяете переменную «link1, link2 ...»). Например, я связал ось Y верхнего ряда и ось Y нижнего ряда независимо. С третьим вызовом я смог связать все оси X вместе, сохранив независимую связь между осью Y.

Просто сохраняйте каждый вызов linkprop в другой переменной

  ax{1,1} = subplot(2,2,1);
  ax{1,2} = subplot(2,2,2);
  ax{2,1} = subplot(2,2,3);
  ax{2,2} = subplot(2,2,4);

  link1 = linkprop([ax{1,1},ax{1,2}], 'YLim');
  link2 = linkprop([ax{2,1},ax{2,2}], 'YLim');
  link3 = linkprop([ax{1,1},ax{1,2},ax{2,1},ax{2,2}],'XLim');
...