主要内容

在App Designer中显示图形

App Designer Graphics概述

许多图形函数在MATLAB®(和MATLAB工具箱)有一个参数来指定目标轴或父对象。这个参数在大多数上下文中都是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用GCF.或者GCA.函数获取操作的目标对象。但是这些函数依赖于HandleVisibility父级的财产“上”,HandleVisibility属性设置为'离开'默认。这意味着GCF.GCA.不要正常工作。因此,省略目标轴或父对象的参数可以产生意外结果。

根据您致电的图形功能,您可能需要指定:

  • 一个UIAxes画布上的组件

  • 应用程序中的父容器

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

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

在现有轴上显示图形

在App Designer中显示图形的最常见方法是指定UIAxesApp 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)

使用没有目标参数的函数

一些图形功能,例如ginputGText.,请勿对指定目标的参数。结果,您必须设置HandleVisibility属性设置为“回调”或者“上”在调用这些函数之前。调用这些函数后,可以设置HandleVisibility物业返回'离开'。例如,此代码显示如何定义回调,该回调允许您使用的识别两个点的坐标ginput函数。

功能PushButtonCallback(app,事件)app.uifigure.handlevisibility =“回调”;ginput (2) app.UIFigure.HandleVisibility ='离开';结束

使用不支持自动调整大小的功能金宝app

App Designer数据默认可调整大小。这意味着当您运行应用程序并调整图形窗口大小时,图中的组件将自动调整大小并重新定位以适合。但是,一些图形功能不支持自动调整大小。金宝app要在App Designer中使用这些功能,请创建一个面板,用于显示函数的输出并设置autolesizechildren.属性设置为'离开'。您可以在此处设置此属性检查员选项卡的浏览器组件或在您的代码中。

例如,子图功能不支持自动调整大小。金宝app要在您的应用中使用此功能:

  1. 从中拖动面板组件组件库到你的画布。

  2. 设置autolesizechildren.属性设置为'离开'

  3. 控件将面板指定为父容器'父母'打电话时的名称值参数子图。另外,指定一个输出参数来存储轴。

  4. 将绘图函数称为轴作为第一个输入参数。

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
检索和保存数据

不支持这些功能:金宝apphgexport,HGLOAD.,HGSave.,保存,负载,savefig,openfig., 和另存为

而不是另存为功能,使用exportapp函数保存应用程序窗口的内容。要在应用程序中保存情节,请使用exportgraphics或者copygraphics职能。

以编程方式创建的数字uifigure支持这金宝app一点保存,负载,savefig, 和openfig.职能。

公用事业

CLF.用来的功能“重置”参数和打印不支持函数。金宝app

而不是打印功能,使用exportapp函数保存应用程序窗口的内容。要在应用程序中保存情节,请使用exportgraphics或者copygraphics职能。

网络应用程序

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

有关更多信息,请参阅限制和不支持的功能金宝app(MATLAB编译器)

另请参阅

|

相关话题