在应用程序设计器中显示图形
App Designer图形概述
MATLAB中的许多图形函数®(和MATLAB工具箱)有一个参数来指定目标轴或父对象。这个参数在大多数上下文中是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用gcf
或gca
函数获取操作的目标对象。但是这些函数依赖于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));
要进一步组织和分隔接受父容器输入参数的图形,请从控件中拖动容器组件,例如面板、选项卡或网格布局组件库在画布上。控件中查看组件的名称,从而确定组件的名称浏览器组件.然后,您可以在调用图形函数时将此容器指定为父容器。
接受父容器作为输入的其他常用图形函数包括注释
,geobubble
,parallelplot
,scatterhistogram
,stackedplot
,wordcloud
.
以编程方式创建坐标轴
一些图形函数在专门的轴上绘制数据。例如,绘制极坐标数据的函数必须在PolarAxes
对象。不像UIAxes
对象,你可以从组件库,你必须添加专门的轴到你的应用程序以编程方式在你的代码中。若要以编程方式创建axis对象,请创建StartupFcn
在它中,调用适当的图形函数,并指定应用程序中的父容器作为目标。
极轴图
功能如下polarplot
,polarhistogram
,polarscatter
以极轴对象为目标。方法以编程方式创建极轴polaraxes
函数。例如,要在面板中绘制极坐标方程,首先从控件中拖动面板组件组件库在你的画布上。在应用程序的代码中,通过调用polaraxes
函数并将面板指定为父容器。然后,画出方程polarplot
函数,将极轴指定为目标轴。
θ = 0:0.01:2*pi;= sin(2*) *cos(2*)pax =极坐标(app.Panel);polarplot(罗马帝国,θ,ρ)
地理坐标轴图
功能如下geoplot
,geoscatter
,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在你的应用中使用这个函数:
控件中拖动面板组件组件库在你的画布上。
设置
AutoResizeChildren
属性的“关闭”
.方法将面板指定为父容器
“父”
调用时的名称值参数次要情节
.另外,指定一个输出参数来存储坐标轴。以坐标轴作为第一个输入参数调用绘图函数。
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 |
---|---|
检索和保存数据 | 不支持以下函数:万博1manbetx 而不是 用编程方式创建的图形 |
网络应用程序 | 如果你正在使用App Designer创建一个部署的web应用程序(需要MATLAB编译器™),适用额外的图形限制。 有关更多信息,请参见Web应用程序限制和不支持的功能万博1manbetx(MATLAB编译器). |