主要内容

在应用程序设计器中显示图形

App Designer图形概述

MATLAB中的许多图形函数®(和MATLAB工具箱)有一个参数来指定目标轴或父对象。这个参数在大多数上下文中是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用gcfgca函数获取操作的目标对象。但是这些函数依赖于HandleVisibility属性的父数字为“上”,以及HandleVisibility属性的App Designer图形设置为“关闭”默认情况下。这意味着gcf而且gca不要像往常一样工作。因此,省略目标轴或父对象的参数可能会产生意想不到的结果。

取决于你调用的图形函数,你可能需要指定:

  • 一个UIAxes组件在画布上

  • 应用程序中的父容器

  • 在应用程序代码中以编程方式创建的axis组件

为图形函数指定目标组件有多种方法。下面给出了一些最常见的语法示例。要在上下文中确定正确的目标和语法,请参阅正在使用的特定图形函数的文档。

在现有轴上显示图形

在App Designer中显示图形的最常用方法是指定UIAxes对象作为图形函数目标。对象中拖动坐标轴组件时组件库在画布上,这创建了一个UIAxes对象。app Designer坐标轴对象的默认名称是app.UIAxes.要确定或更改画布上特定轴的名称,请选择axes组件。列表中列出了它的名称,可以在浏览器组件

将Axes指定为第一个参数

许多图形函数都有一个可选的第一个输入参数来指定目标轴对象。例如,两者情节功能和持有函数以这种方式获取一个目标轴对象。若要在画布上的一组轴上绘制两行,请将axes对象的名称指定为调用的每个函数的第一个参数。

情节(应用程序。UIAxes,[1 2 3 4],“- r”);持有(app.UIAxes);情节(应用程序。UIAxes,[10 9 4 7],“——b”);

指定坐标轴作为名称-值参数

有些图形函数要求将目标轴对象指定为名称-值参数。例如,当您调用imshow而且triplot函数,指定要在上显示的轴对象“父”名称-值参数。这段代码在画布上现有的一组轴上显示图像:

imshow (“peppers.png”“父”, app.UIAxes);

在容器中显示图形

有些图形函数显示在容器组件中,例如图形、面板或网格布局,而不是坐标轴对象。例如,的热图函数有一个可选的第一个参数,用于指定将在其中显示图表的容器。

每个App Designer应用程序都有一个图形对象,默认命名为app.UIFigure,它是组成应用程序主窗口的组件的容器。指定app.UIFigure作为父容器参数,在主应用程序窗口中显示图形。例如,要在你的应用中创建一个热图,使用以下语法:

h =热图(app.UIFigure,rand(10));

要进一步组织和分隔接受父容器输入参数的图形,请从控件中拖动容器组件,例如面板、选项卡或网格布局组件库在画布上。控件中查看组件的名称,从而确定组件的名称浏览器组件.然后,您可以在调用图形函数时将此容器指定为父容器。

接受父容器作为输入的其他常用图形函数包括注释geobubbleparallelplotscatterhistogramstackedplot,wordcloud

以编程方式创建坐标轴

一些图形函数在专门的轴上绘制数据。例如,绘制极坐标数据的函数必须在PolarAxes对象。不像UIAxes对象,你可以从组件库,你必须添加专门的轴到你的应用程序以编程方式在你的代码中。若要以编程方式创建axis对象,请创建StartupFcn在它中,调用适当的图形函数,并指定应用程序中的父容器作为目标。

极轴图

功能如下polarplotpolarhistogram,polarscatter以极轴对象为目标。方法以编程方式创建极轴polaraxes函数。例如,要在面板中绘制极坐标方程,首先从控件中拖动面板组件组件库在你的画布上。在应用程序的代码中,通过调用polaraxes函数并将面板指定为父容器。然后,画出方程polarplot函数,将极轴指定为目标轴。

θ = 0:0.01:2*pi;= sin(2*) *cos(2*)pax =极坐标(app.Panel);polarplot(罗马帝国,θ,ρ)

地理坐标轴图

功能如下geoplotgeoscatter,geodensityplot以一个地理轴对象为目标。方法以编程方式创建地理轴geoaxes函数。例如,要在面板中绘制地理数据,使用以下代码:

latSeattle = 47 + 37/60;lonSeattle = -(122 + 20/60);gx = geoaxis (app.Panel);geoplot (gx latSeattle lonSeattle)

创建平铺图表布局

控件对多个图表进行平铺tiledlayout方法在面板中创建平铺图表布局,并以编程方式在其中创建轴nexttile函数。对象返回坐标轴对象nexttile函数,并使用它来指定图表或图表的轴。

t = tiledlayout(app.Panel,2,1);[X,Y,Z] =峰(20)% Tile 1Ax1 = nexttile(t);冲浪(ax₁,X, Y, Z)% Tile 2Ax2 = nexttile(t);轮廓(ax2 X, Y, Z)

使用没有目标参数的函数

一些图形函数,如ginput而且gtext,没有指定目标的参数。因此,您必须设置HandleVisibility属性的应用程序设计器图形“回调”“上”在调用这些函数之前。调用这些函数后,可以设置HandleVisibility物业归还“关闭”.例如,此代码演示了如何定义一个回调函数,该回调函数允许您使用ginput函数。

函数app. uifigu . handlevisibility =“回调”;ginput(2) app. uifigu . handlevisibility =“关闭”结束

使用不支持自动调整大小的函数万博1manbetx

App Designer图形在默认情况下可以调整大小。这意味着当你运行一个应用程序并调整图形窗口的大小时,图中的组件会自动调整大小和重新定位以适应。但是,有些图形功能不支持自动调整大小。万博1manbetx要在App Designer中使用这些函数,请创建一个面板,在其中显示函数的输出并设置AutoResizeChildren属性的“关闭”.中设置此属性面板的TAB浏览器组件或者在你的代码中。

例如,次要情节函数不支持自动调整大小。万博1manbetx在你的应用中使用这个函数:

  1. 控件中拖动面板组件组件库在你的画布上。

  2. 设置AutoResizeChildren属性的“关闭”

  3. 方法将面板指定为父容器“父”调用时的名称值参数次要情节.另外,指定一个输出参数来存储坐标轴。

  4. 以坐标轴作为第一个输入参数调用绘图函数。

app.Panel.AutoResizeChildren =“关闭”;Ax1 = subplot(1,2,1,“父”, app.Panel);Ax2 = subplot(1,2,2,“父”, app.Panel);Plot (ax1,[1 2 3 4]) Plot (ax2,[10 9 4 7])

其他不支持自动调整大小的常用函数包括万博1manbetx帕累托而且plotmatrix

有关管理调整大小行为的更多信息,请参见默认自动调整大小行为的替代方案

不支万博1manbetx持的功能

App Designer中不支持某些图形功能。万博1manbetx该表列出了与应用程序构建工作流最相关的不支持的万博1manbetx功能。

类别 不支持万博1manbetx
检索和保存数据

不支持以下函数:万博1manbetxhgexporthgloadhgsave保存负载savefigopenfig,saveas,打印

而不是saveas打印函数,使用exportapp函数保存应用程序窗口的内容。要在应用程序中保存绘图,请使用exportgraphicscopygraphics功能。

用编程方式创建的图形uifigure支持万博1manbetx保存负载savefig,openfig功能。

网络应用程序

如果你正在使用App Designer创建一个部署的web应用程序(需要MATLAB编译器™),适用额外的图形限制。

有关更多信息,请参见Web应用程序限制和不支持的功能万博1manbetx(MATLAB编译器)

另请参阅

|

相关的话题