在应用程序设计器中显示图形
App Designer图形概述
MATLAB中的许多图形函数®(和MATLAB工具箱)有一个参数用于指定目标轴或父对象。这个参数在大多数情况下是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用gcf
或gca
函数来获取操作的目标对象。但是这些函数依赖于HandleVisibility
父图形存在的属性“上”
,以及HandleVisibility
属性设置为“关闭”
默认情况下。这意味着gcf
而且gca
不要像往常一样工作。因此,省略目标轴或父对象的参数可能会产生意想不到的结果。
根据你调用的图形函数,你可能需要指定:
一个
UIAxes
画布上的组件应用程序中的父容器
在应用程序代码中以编程方式创建的axis组件
有许多方法可以为图形函数指定目标组件。下面给出了一些最常见的语法示例。要在上下文中确定正确的目标和语法,请参阅正在使用的特定图形函数的文档。
在现有轴上显示图形
在App Designer中显示图形的最常用方法是指定UIAxes
对象作为图形函数目标。中拖动坐标轴组件时组件库在画布上,这会创建一个UIAxes
应用程序设计器axis对象的默认名称是app.UIAxes
.要确定或更改画布上特定轴的名称,请选择axes组件。列表中列出了它的名称,并可在浏览器组件
指定Axes作为第一个参数
许多图形函数都有一个可选的第一个输入参数来指定目标轴对象。例如,两者情节
功能和持有
函数以这种方式获取目标轴对象。要在画布上的一组轴上绘制两条线,请将axis对象的名称指定为所调用的每个函数的第一个参数。
情节(应用程序。UIAxes,[1 2 3 4],“- r”);持有(app.UIAxes);情节(应用程序。UIAxes,[10 9 4 7],“——b”);
指定轴作为名称-值参数
一些图形函数要求将目标轴对象指定为名称-值参数。例如,当您调用imshow
而且triplot
函数,指定要显示的轴对象“父”
名称-值参数。这段代码在画布上现有的一组轴上显示图像:
imshow (“peppers.png”,“父”, app.UIAxes);
容器内显示图形
一些图形函数显示在容器组件中,例如图形、面板或网格布局,而不是axis对象。例如,的热图
函数有一个可选的第一个参数,用于指定图表将在其中显示的容器。
每个App Designer应用程序都有一个图形对象,默认命名为app.UIFigure
,它是组成应用程序主窗口的组件的容器。指定app.UIFigure
作为父容器参数,在主应用程序窗口中显示图形。例如,要在应用程序中创建热图,使用以下语法:
h = heatmap(app.UIFigure,rand(10));
控件中拖拽容器组件(如面板、选项卡或网格布局),可进一步组织和分隔接受父容器输入参数的图形组件库画在画布上。控件中选择组件并查看其名称,以确定组件的名称浏览器组件.然后,您可以在调用图形函数时将此容器指定为父容器。
其他常用的以父容器作为输入的图形函数包括注释
,geobubble
,parallelplot
,scatterhistogram
,stackedplot
,wordcloud
.
以编程方式创建轴
一些图形函数在专门的轴上绘制数据。例如,绘制极性数据的函数必须在PolarAxes
对象。不像UIAxes
对象,你可以从组件库,你必须添加专门的轴到你的应用程序以编程方式在你的代码中。若要以编程方式创建axis对象,请创建StartupFcn
在它里面,调用适当的图形函数,并指定应用程序中的父容器作为目标。
极轴图
函数如polarplot
,polarhistogram
,polarscatter
以极轴物体为目标。方法以编程方式创建极轴polaraxes
函数。例如,若要在面板中绘制极坐标方程,请首先将面板组件从组件库在画布上。方法创建极轴对象polaraxes
函数,并指定面板作为父容器。然后,画出方程polarplot
函数,将极轴指定为目标轴。
= 0:0.01:2*;Rho = sin(2*) *cos(2*)pax =偏光轴(app.Panel);polarplot(罗马帝国,θ,ρ)
地理轴图
函数如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)%瓷砖1Ax1 = nexttile(t);冲浪(ax₁,X, Y, Z)%瓷砖2Ax2 = nexttile(t);轮廓(ax2 X, Y, Z)
使用没有目标参数的函数
一些图形函数,如ginput
而且gtext
,没有用于指定目标的参数。因此,必须设置HandleVisibility
属性的应用程序设计器图形“回调”
或“上”
在调用这些函数之前。调用这些函数之后,可以设置HandleVisibility
财产返回“关闭”
.方法定义一个回调函数,该回调函数允许您识别两个点的坐标ginput
函数。
函数app. ufigue . handlevisibility = . pushButtonCallback(app,event“回调”;ginput(2) app. ufigue . handlevisibility =“关闭”;结束
使用不支持自动调整大小的函数
App Designer图形在默认情况下是可调整大小的。这意味着当您运行应用程序并调整图形窗口大小时,图形中的组件将自动调整大小和重新定位以适应。但是,某些图形功能不支持自动调整大小。要在App Designer中使用这些函数,请创建一个面板,在其中显示函数的输出并设置AutoResizeChildren
属性设置为“关闭”
.属性中设置此属性面板的标签。浏览器组件或者在你的代码中。
例如,次要情节
函数不支持自动调整大小。在你的应用中使用这个函数:
控件中拖动面板组件组件库在画布上。
设置
AutoResizeChildren
属性设置为“关闭”
.属性将面板指定为父容器
“父”
名称-值参数次要情节
.另外,指定一个输出参数来存储轴。以坐标轴作为第一个输入参数调用绘图函数。
app.Panel.AutoResizeChildren =“关闭”;Ax1 = subplot(1,2,1,“父”, app.Panel);Ax2 = subplot(1,2,2,“父”, app.Panel);Plot (ax2,[10 9 4 7])
其他不支持自动调整大小的常用函数包括帕累托
而且plotmatrix
.
有关管理调整大小行为的详细信息,请参见默认自动调整大小行为的替代方案.
不支持的功能
应用程序设计器中不支持某些图形功能。该表列出了与应用程序构建工作流最相关的不受支持的功能。
类别 | 不支持 |
---|---|
检索和保存数据 | 不支持以下函数: 而不是 以编程方式创建的图形 |
网络应用程序 | 如果你正在使用应用程序设计器来创建一个部署的web应用程序(需要MATLAB编译器™),则适用其他图形限制。 有关更多信息,请参见Web应用程序限制和不支持的功能(MATLAB编译器). |