Отображение графики в App Designer

Отображение графики в App Designer требует различного рабочего процесса, чем вы обычно используете в командной строке MATLAB®. Если вы понимаете этот рабочий процесс и несколько особых случаев, вы будете знать, как вызвать необходимые функции для отображения почти любого типа графика.

Вызывание графических функций

Многие графические функции в MATLAB (и тулбоксы MATLAB) имеют аргумент для определения целевых осей или родительского объекта. Этот аргумент является дополнительным в большинстве контекстов, но когда вы вызываете эти функции в App Designer, необходимо задать тот аргумент. В противном случае MATLAB использует gcf или gca, чтобы получить целевой объект для операции. Однако gcf не может возвратить фигуру App Designer, и gca не может возвратить оси в фигуре App Designer. Таким образом исключение аргумента может привести к неожиданным результатам.

Этот код показывает, как задать целевые оси при строении двух графиков. Первый аргумент передал plot, и hold является app.UIAxes, который является именем по умолчанию для осей App Designer.

plot(app.UIAxes,[1 2 3 4],'-r');
hold(app.UIAxes);
plot(app.UIAxes,[10 9 4 7],'--b');

Некоторые функции (такие как imshow и triplot) используют аргумент пары "имя-значение", чтобы задать целевой объект. Например, этот код показывает, как вызвать функцию imshow в App Designer.

imshow('peppers.png','Parent',app.UIAxes);
Задаете ли вы целевой объект в качестве первого аргумента, или аргумент пары "имя-значение" зависит от функции. См. документацию для определенной функции, которую вы хотите использовать, чтобы определить соответствующие аргументы.

Отображение графиков Используя другие типы осей

Можно создать большинство 2D и 3-D графиков с помощью осей App Designer (объект uiaxes). Начиная в R2018b, можно создать дополнительные графики, такие как перечисленные в следующей таблице. Большинство этих графиков требует другого типа родительского объекта и дополнительных строк кода в вашем приложении. Все они используют нормированные единицы по умолчанию.

ФункцииКодирование деталей
polarplot
polarhistogram
polarscatter
compass

Создайте полярные оси путем вызывания функции polaraxes. Задайте родительский контейнер как первый входной параметр (например, app.UIFigure). Затем вызовите функцию построения графика с полярными осями в качестве первого аргумента. Например:

theta = 0:0.01:2*pi;
rho = sin(2*theta).*cos(2*theta);
pax = polaraxes(app.UIFigure);
polarplot(pax,theta,rho)

subplot

Выполните эти шаги:

  1. Установите свойство AutoResizeChildren на 'off'. Подграфики не поддерживают поведение при автоматическом изменении размера. Можно установить это свойство во вкладке App Designer Inspector Component Browser или в коде.

  2. Задайте родительский контейнер с помощью аргумента пары "имя-значение" 'Parent', когда вы вызовете subplot. Кроме того, задайте выходной аргумент, чтобы сохранить оси.

  3. Вызовите функцию построения графика с осями как первый входной параметр.

Например:

app.UIFigure.AutoResizeChildren = 'off';
ax1 = subplot(1,2,1,'Parent',app.UIFigure);
ax2 = subplot(1,2,2,'Parent',app.UIFigure);
plot(ax1,[1 2 3 4])
plot(ax2,[10 9 4 7])

pareto
plotmatrix

Выполните эти шаги:

  1. Установите свойство AutoResizeChildren на 'off'. Эти графики не поддерживают поведение при автоматическом изменении размера. Можно установить это свойство во вкладке App Designer Inspector Component Browser или в коде.

  2. Создайте оси путем вызывания функции axes. Задайте родительский контейнер как первый входной параметр (например, app.UIFigure).

  3. Вызовите pareto или функцию plotmatrix с осями как первый входной параметр.

Например:

app.UIFigure.AutoResizeChildren = 'off';
ax = axes(app.UIFigure);
pareto(ax,[10 20 40 40])

geobubble
heatmap
parallelplot
scatterhistogram
stackedplot
wordcloud

Задайте родительский контейнер при вызывании этих функций (например, app.UIFigure).

Например:

h = heatmap(app.UIFigure,rand(10));

geoplot
geoscatter
geodensityplot

Создайте географические оси путем вызывания функции geoaxes. Задайте родительский контейнер как первый входной параметр (например, app.UIFigure). Затем вызовите функцию построения графика с осями в качестве первого аргумента. Например:

latSeattle = 47 + 37/60;
lonSeattle = -(122 + 20/60);
gx = geoaxes(app.UIFigure);
geoplot(gx,latSeattle,lonSeattle)

Неподдерживаемая функциональность

С R2019a некоторая графическая функциональность не поддержана в App Designer. Эта таблица приводит функциональность, которая относится к большинству рабочих процессов создания приложений.

КатегорияНе поддерживаемый
Анимация
Аннотации
  • Аннотации создаются с функцией annotation.

Получение и сохранение данных

Фигуры, созданные программно с uifigure, действительно поддерживают save, load, savefig и функции openfig.

Утилиты
Функции, не Рекомендуемые
Оси в менеджерах по размещению сетки или контейнерах с возможностью прокрутки
  • Менеджеры по размещению сетки и контейнеры с возможностью прокрутки не поддерживают axes, polaraxes, geoaxes или графики (такие как heatmap, geobubble или stackedplot), который может быть дочерним элементом фигуры.

  • uiaxes не имеет этих ограничений.

Обходные решения:

  • Чтобы работать вокруг менеджера по размещению сетки ограничение, поместите оси или график в панель. Затем поместите панель в сетку.

  • Чтобы работать вокруг контейнерного ограничения с возможностью прокрутки, поместите оси или график в панель с набором свойств Scrollable к 'off'. Затем поместите панель в контейнер с возможностью прокрутки.

Компоненты
Свойства
  • Некоторые свойства компонентов не поддержаны в App Designer. Для списка поддерживаемых свойств для конкретного компонента смотрите его страницу свойств при Разработке Приложений в App Designer.

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте