Управление отображением графики

Что можно контролировать

MATLAB® позволяет одновременно открывать многие окна рисунка во время сеанса. Можно управлять, какие рисунки и какие оси MATLAB использует для отображения результата функции построения графика. Можно также управлять тем, в какой степени MATLAB очищает и сбрасывает свойства целевых рисунков и осей.

Можно изменить поведение функций построения графика MATLAB, и можно реализовать определенное поведение в функциях построения графика, которые вы пишете.

Рассмотрим следующие аспекты:

  • Можете ли вы предотвратить превращение определенного рисунка или осей в цель для отображения графиков?

  • Что происходит с существующим графиком, когда вы строите больше данных для этого графика? Заменяется ли существующий график или к существующему графу добавляются новые графические объекты?

Нацеливание на конкретные фигуры и оси

По умолчанию функции построения графика MATLAB отображают графики в текущей фигуре и текущей системе координат (объекты, возвращенные gcf и gca соответственно). Можно направить выход на другой рисунок и оси путем:

  • Явное определение целевой оси функцией построения графика.

  • Создание цели осей текущей системы координат.

Задайте целевую ось

Предположим, что вы создаете рисунок с двумя осями, ax1 и ax2.

tiledlayout(1,2)
ax1 = nexttile;
ax2 = nexttile;

Звонить plot с объектом осей в качестве первого аргумента:

plot(ax1,1:10)

Для функций построения графика, которые не поддерживают первый аргумент в виде осей, установите Parent свойство:

t = 0:pi/5:2*pi;
patch(sin(t),cos(t),'y','Parent',ax2)

Сделайте целевой ток

Чтобы задать цель, можно сделать рисунок текущей фигурой и оси на этом рисунке текущей системой координат. Функции построения графика используют текущую фигуру и ее текущие системы координат по умолчанию. Если текущая фигура не имеет текущей системы координат, MATLAB создает ее.

Если fig - указатель на рисунок, затем оператор

figure(fig)
  • Делает fig а текущая фигура.

  • Выполняется перезапуск fig чтобы стать самым передним рисунком.

  • Делает fig виден, если он не был (устанавливает Visible свойство к 'on').

  • Обновляет отображение рисунка и обрабатывает все ожидающие коллбэки.

То же поведение относится и к осям. Если ax - указатель на оси, затем оператор

axes(ax)
  • Делает ax а текущая система координат.

  • Выполняется перезапуск ax отображаются самые передние оси.

  • Делает ax отображается, если это не так.

  • Обновляет рисунок, содержащий оси, и обрабатывает все ожидающие коллбэки.

Сделайте фигуру или оси током, не меняя другое состояние

Вы можете сделать рисунок или оси текущими, не вызывая изменения в других аспектах состояния объекта. Установите корневой CurrentFigure свойство или CurrentAxes объекта рисунка свойство для указателя на рисунок или оси, которые вы хотите использовать.

Если fig - указатель на существующий рисунок, оператор

r = groot;
r.CurrentFigure = fig;

делает fig а текущая фигура. Точно так же, если ax - указатель на объект осей, оператор

fig.CurrentAxes = ax;

делает его текущей системой координат, если fig - указатель родительского рисунка осей.