主要内容

在App Designer中显示图形

应用程序设计器图形概述

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

根据调用的图形函数,可能需要指定:

  • 一个UIAxes画布上的组件

  • 应用程序中的父容器

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

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

在现有轴上显示图形

在App Designer中显示图形最常见的方法是指定UIAxes对象作为图形函数目标。当你从组件库在画布上,创建一个UIAxes应用程序设计器轴对象的默认名称是app.UIAxes.要确定或更改画布上特定轴的名称,请选择轴组件。它的名字被列出来,可以在浏览器组件

指定Axes作为第一个参数

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

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

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

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

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

在容器中显示图形

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

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

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

控件中的容器组件,如面板、选项卡或网格布局,可进一步组织和划分接受父容器输入参数的图形组件库在画布上。通过选择零部件并在中查看其名称来确定零部件的名称浏览器组件.然后,您可以在调用图形函数时将该容器指定为父容器。

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

以编程方式创建轴

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

极轴绘图

等功能polarplotpolarhistogram,polarscatter将极轴对象作为目标。通过调用polaraxes函数。例如,要在面板中绘制极坐标方程,首先从组件库到你的画布。在应用程序的代码中,通过调用polaraxes函数,并指定面板为父容器。然后,用polarplot函数,指定极轴作为目标轴。

θ= 0:0.01:2 *π;ρ=罪(2 *θ)。* cosθ(2 *);罗马帝国= polaraxes (app.Panel);polarplot(罗马帝国,θ,ρ)

在地理轴上绘图

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

西雅图= 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=nexttile(t);冲浪(ax1,X,Y,Z)%瓷砖2ax2 = nexttile (t);轮廓(ax2 X, Y, Z)

使用没有目标参数的函数

一些图形功能,如ginputgtext,不需要参数来指定目标。因此,必须设置HandleVisibility属性的App Designer图形“回调”“上”在调用这些函数之前。调用这些函数后,可以设置HandleVisibility属性回“关闭”.例如,这段代码展示了如何定义一个回调函数,该回调函数允许您使用ginput函数。

函数pushButtonCallback app.UIFigure.HandleVisibility =(应用程序、事件)“回调”;ginput (2) app.UIFigure.HandleVisibility =“关闭”结束

使用不支持自动调整大小的函数金宝app

默认情况下,应用程序设计器图形可以调整大小。这意味着,当您运行应用程序并调整“地物”窗口的大小时,地物中的组件将自动调整大小并重新定位以适应需要。但是,某些图形功能不支持自动调整大小。要在App Designer中使用这些函数,请创建一个面板,在其中显示函数的输出并设置金宝appAutoResizeChildren属性“关闭”.属性中可以设置此属性检查员选项卡的浏览器组件或者在你的代码中。

例如,次要情节函数不支持自动调整大小。要在应用程序金宝app中使用此功能,请执行以下操作:

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

  2. 设置AutoResizeChildren属性“关闭”

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

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

app.Panel.AutoResizeChildren =“关闭”;ax₁=次要情节(1、2、1,“父”, app.Panel);ax2 =次要情节(1、2、2、“父”, app.Panel);Plot (ax1,[1 2 3 4])

其他不支持自动调整大小的常用功能包括金宝app帕累托plotmatrix

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

不支金宝app持的功能

从R2021a开始,App Designer中不支持某些图形功能。金宝app该表列出了与应用程序构建工作流最相关的不受支持金宝app的功能。

类别 不支持金宝app
动画 电影函数不支持。金宝app
检索和保存数据

不支持以下功能:金宝apphgexporthgloadhgsave保存负载savefigopenfig,saveas

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

用程序创建的图uifigure做支持金宝app保存负载savefig,openfig功能。

公用事业公司

clf“重置”参数和打印函数不支持。金宝app

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

网络应用程序

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

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

另请参阅

|

相关话题