许多图形函数在MATLAB®(和MATLAB工具箱)有一个参数来指定目标轴或父对象。这个参数在大多数上下文中都是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用GCF.
或者GCA.
函数获取操作的目标对象。但是这些函数依赖于HandleVisibility
父级的财产“上”
,HandleVisibility
属性设置为'离开'
默认。这意味着GCF.
和GCA.
不要正常工作。因此,省略目标轴或父对象的参数可以产生意外结果。
根据您致电的图形功能,您可能需要指定:
一个UIAxes
画布上的组件
应用程序中的父容器
在应用程序代码中以编程方式创建的轴组件
有许多方法可以为图形函数指定目标组件。下面给出了一些最常见语法的例子。要在您的上下文中确定正确的目标和语法,请参阅您正在使用的特定图形函数的文档。
在App Designer中显示图形的最常见方法是指定UIAxes
App Designer Canvas上的对象作为图形功能目标。当您从中拖动轴组件时组件库在画布上,这将创建UIAxes
对象在您的应用程序中。App Designer Axes对象的默认名称是app.UIAxes
。要确定或更改画布上特定轴的名称,请选择轴组件。列表中列出了它的名称,并可以在浏览器组件
许多图形函数都有一个可选的第一个输入参数来指定目标轴对象。例如,两者都是情节
功能和持有
函数以这种方式获取目标轴对象。要在画布上的一组轴上绘制两条线,请将轴对象的名称指定为调用的每个函数的第一个参数。
情节(应用程序。UIAxes,[1 2 3 4],'-r');持有(app.UIAxes);情节(应用程序。UIAxes,[10 9 4 7],“——b”);
某些图形功能要求将目标轴对象指定为名称值参数。例如,当你打电话时imshow.
和Triplot.
函数,指定轴对象以使用该轴对象'父母'
名称值参数。此代码在Canvas上显示现有轴上的图像:
imshow ('peppers.png','父母', app.UIAxes);
一些图形功能在容器组件中显示,例如图形,面板或网格布局,而不是轴对象。例如,的热图
函数具有一个可选的第一个参数,用于指定图表将显示在其中的容器。
每个App Designer应用程序都有一个图对象,默认命名app.UIFigure
,这是构成主应用程序窗口的组件的容器。指定app.UIFigure
作为父容器参数以在主应用程序窗口中显示图形。例如,要在您的应用程序中创建热贴图,请使用此语法:
H = Heatmap(App.uifigure,Rand(10));
要进一步组织和分组占用父容器输入参数的图形,请拖动容器组件,例如面板,选项卡或网格布局组件库到画布上。通过选择它来确定组件的名称并在其中查看其名称浏览器组件。然后,可以在调用图形函数时将此容器指定为父容器。
其他常用的图形函数,用于作为输入的父容器占用注释
,geobubble
,parallelplot
,散点图
,stackedplot
, 和wordcloud
。
一些图形功能在专用轴上绘制数据。例如,绘图极性数据必须这样做的函数PolarAxes
目的。不像UIAxes
对象中添加到应用程序的组件库,您必须为您的应用添加专用轴以太基方式在你的代码中。要以编程方式创建轴对象,请创建一个startupfcn.
回调您的应用程序。在其中,调用相应的图形函数并将应用程序中的父容器指定为目标。
函数如polarplot
,偏振图
, 和polarscatter
将极轴对象作为目标。通过调用的方式以编程方式创建极性轴polaraxes
函数。例如,要在面板中绘制极坐标方程,首先从组件库到你的画布。在您的应用程序的代码中,通过调用来创建极轴对象polaraxes
函数,并将面板指定为父容器。然后,用polarplot
函数,指定极轴为目标轴。
Theta = 0:0.01:2 * PI;rho = sin(2 * theta)。* cos(2 *θ);pax = pillaxes(app.panel);POARPLOT(PAX,THETA,RHO)
函数如geoplot
,Geoscatter
, 和geodensityplot
以地理轴对象为目标。方法以编程方式创建地理轴geoaxes
函数。例如,要在面板中绘制地理数据,可以使用以下代码:
latSeattle = 47 + 37/60;lonSeattle = -(122 + 20/60);gx = geoaxes (app.Panel);geoplot (gx latSeattle lonSeattle)
使用多条图表使用tiledlayout
函数,在面板中创建瓷砖图表布局,并在其上编程地创建轴nexttile
函数。从中返回轴对象nexttile
函数并使用它来指定图表或图表的轴。
t = tiledlayout (app.Panel 2 1);[X, Y, Z] =山峰(20)% 1瓦AX1 = NELTTILE(T);冲浪(Ax1,x,y,z)%瓷砖2ax2 = nexttile (t);轮廓(ax2 X, Y, Z)
一些图形功能,例如ginput
和GText.
,请勿对指定目标的参数。结果,您必须设置HandleVisibility
属性设置为“回调”
或者“上”
在调用这些函数之前。调用这些函数后,可以设置HandleVisibility
物业返回'离开'
。例如,此代码显示如何定义回调,该回调允许您使用的识别两个点的坐标ginput
函数。
功能PushButtonCallback(app,事件)app.uifigure.handlevisibility =“回调”;ginput (2) app.UIFigure.HandleVisibility ='离开';结束
App Designer数据默认可调整大小。这意味着当您运行应用程序并调整图形窗口大小时,图中的组件将自动调整大小并重新定位以适合。但是,一些图形功能不支持自动调整大小。金宝app要在App Designer中使用这些功能,请创建一个面板,用于显示函数的输出并设置autolesizechildren.
属性设置为'离开'
。您可以在此处设置此属性检查员选项卡的浏览器组件或在您的代码中。
例如,子图
功能不支持自动调整大小。金宝app要在您的应用中使用此功能:
从中拖动面板组件组件库到你的画布。
设置autolesizechildren.
属性设置为'离开'
。
控件将面板指定为父容器'父母'
打电话时的名称值参数子图
。另外,指定一个输出参数来存储轴。
将绘图函数称为轴作为第一个输入参数。
app.Panel.AutoResizeChildren ='离开';ax₁=次要情节(1、2、1,'父母',app.panel);AX2 =子图(1,2,2,'父母',app.panel);图(AX1,[1 2 3 4])图(AX2,[10 9 4 7])
其他不支持自动调整大小的常用功能包括金宝app帕累托
和plotmatrix
。
有关管理调整大小行为的详细信息,请参阅默认自动调整行为的替代方案。
App设计器中不支持某些图形功能。金宝app此表列出了与应用程序构建工作流最相关的不受支持金宝app的功能。
类别 | 不支持金宝app |
---|---|
动画片 | 的电影 不支持函数。金宝app |
检索和保存数据 | 不支持这些功能:金宝app 而不是 以编程方式创建的数字 |
公用事业 | 的 而不是 |
网络应用程序 | 如果你正在使用App Designer创建一个部署的web应用程序(需要Matlab Compiler™),额外的图形限制适用。 有关更多信息,请参阅限制和不支持的功能金宝app(MATLAB编译器)。 |