Отображение графики в 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 | Создайте полярные оси путем вызывания функции
theta = 0:0.01:2*pi; rho = sin(2*theta).*cos(2*theta); pax = polaraxes(app.UIFigure); polarplot(pax,theta,rho) |
subplot | Выполните эти шаги:
Например: 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 | Выполните эти шаги:
Например: app.UIFigure.AutoResizeChildren = 'off';
ax = axes(app.UIFigure);
pareto(ax,[10 20 40 40]) |
geobubble heatmap parallelplot scatterhistogram stackedplot wordcloud | Задайте родительский контейнер при вызывании этих функций (например, Например: h = heatmap(app.UIFigure,rand(10)); |
geoplot geoscatter geodensityplot | Создайте географические оси путем вызывания функции
latSeattle = 47 + 37/60; lonSeattle = -(122 + 20/60); gx = geoaxes(app.UIFigure); geoplot(gx,latSeattle,lonSeattle) |
С R2019a некоторая графическая функциональность не поддержана в App Designer. Эта таблица приводит функциональность, которая относится к большинству рабочих процессов создания приложений.
Категория | Не поддерживаемый |
---|---|
Анимация | |
Аннотации |
|
Получение и сохранение данных | Фигуры, созданные программно с |
Утилиты | |
Функции, не Рекомендуемые | |
Оси в менеджерах по размещению сетки или контейнерах с возможностью прокрутки | Обходные решения:
|
Компоненты |
|
Свойства |
|
UI Figure Properties | UIAxes Properties