主要内容

在应用程序设计器中显示图形

App Designer图形概述

MATLAB中的许多图形函数®(和MATLAB工具箱)有一个参数用于指定目标轴或父对象。这个参数在大多数情况下是可选的,但是当你在App Designer中调用这些函数时,你必须指定这个参数。原因是,在大多数情况下,MATLAB默认使用gcfgca函数来获取操作的目标对象。但是这些函数依赖于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));

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

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

以编程方式创建轴

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

极轴图

函数如polarplotpolarhistogram,polarscatter以极轴物体为目标。方法以编程方式创建极轴polaraxes函数。例如,若要在面板中绘制极坐标方程,请首先将面板组件从组件库在画布上。方法创建极轴对象polaraxes函数,并指定面板作为父容器。然后,画出方程polarplot函数,将极轴指定为目标轴。

= 0:0.01:2*;Rho = sin(2*) *cos(2*)pax =偏光轴(app.Panel);polarplot(罗马帝国,θ,ρ)

地理轴图

函数如geoplotgeoscatter,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属性设置为“关闭”.属性中设置此属性面板的标签。浏览器组件或者在你的代码中。

例如,次要情节函数不支持自动调整大小。在你的应用中使用这个函数:

  1. 控件中拖动面板组件组件库在画布上。

  2. 设置AutoResizeChildren属性设置为“关闭”

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

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

app.Panel.AutoResizeChildren =“关闭”;Ax1 = subplot(1,2,1,“父”, app.Panel);Ax2 = subplot(1,2,2,“父”, app.Panel);Plot (ax2,[10 9 4 7])

其他不支持自动调整大小的常用函数包括帕累托而且plotmatrix

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

不支持的功能

应用程序设计器中不支持某些图形功能。该表列出了与应用程序构建工作流最相关的不受支持的功能。

类别 不支持
检索和保存数据

不支持以下函数:hgexporthgloadhgsave保存负载savefigopenfig,saveas,打印

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

以编程方式创建的图形uifigure支持保存负载savefig,openfig功能。

网络应用程序

如果你正在使用应用程序设计器来创建一个部署的web应用程序(需要MATLAB编译器™),则适用其他图形限制。

有关更多信息,请参见Web应用程序限制和不支持的功能(MATLAB编译器)

另请参阅

|

相关的话题

Baidu
map