主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

mlreportgen.report.Figure 类

命名空间: mlreportgen.report
超类: mlreportgen.report.Reporter

图窗报告器

描述

创建一个带有标题、图窗和题注的图窗报告器。

mlreportgen.report.Figure 类是一个 handle 类。

类属性

HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

描述

fig = mlreportgen.report.Figure 创建了一个报告器,对 MATLAB® 中当前打开的图窗进行快照并将其添加到报告中。使用图窗属性添加题注或更改图窗大小。快照图像存储在报告的临时文件夹中。当报告关闭时,快照图像将被复制到报告中,并且图像将从临时文件夹中删除。为了防止快照图像文件被删除,请使用报告的 Debug 属性。请参阅 mlreportgen.report.Report

示例

fig = mlreportgen.report.Figure(source) 创建一个报告器,添加 source 指定的图窗,并将 Source 属性设置为 source

fig = mlreportgen.report.Figure(Name=Value) 使用名称-值参量设置属性。您可以按任意顺序指定多个名称-值参量。

属性

全部展开

图窗来源,指定为:

  • 指示有效图窗文件路径的字符向量或字符串标量

  • 有效的图形句柄

属性:

GetAccess
public
SetAccess
public

快照报告器,指定为 mlreportgen.report.FormalImage 对象。使用 FormalImage 对象的属性指定快照图像的标题或进一步自定义图像的大小。

注意

报告器初始化 Snapshot 属性。请勿重置此属性。

属性:

GetAccess
public
SetAccess
public

快照图像格式,指定为以下格式之一:

导入图像格式支持 HTML支持 Word支持 PDF

支持 PDF/A 格式 (自 R2025a 起)

Windows® 元文件 (.emf)
图形交换格式 (.gif)
JPEG 图片 (.jpg)
PDF (.pdf)
PDF/A (.pdf)
便携式网络图 (.png)
可缩放矢量图 (.svg)
TIFF 图片 (.tif)

注意

与 PDF 报告输出格式不同,PDF/A 格式不支持包含 PDF 或 PDF/A 图像。使用表中列出的图像格式之一将图像插入 PDF/A 报告。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

快照图像的缩放选项,指定为 "auto""custom""none"。此属性控制图像文件中快照图像的大小。支持的缩放选项包括:

  • "auto" - 对于 PDF 或 Word (DOCX) 输出,使用此选项可缩放快照图像以适合当前页面布局,同时保持其纵横比。首先,报告器将快照图像缩放至页面宽度。如果图像高度超出了页面高度,报告器会再次缩小图像。这种额外的缩放可确保图像适合当前页面,并有额外的一英寸间距。缩放不适用于 HTML 输出。

  • "custom" - 使用此选项根据 HeightWidth 属性的值缩放快照图像。

  • "none" - 不执行缩放

注意

"auto" "custom" 选项使用 MATLAB print 命令来调整图窗大小。如果图形太大,无法放入指定的空间,print 命令会裁剪快照图像。为了避免裁剪,请将 Scaling 属性设置为“none”,并使用 Snapshot 属性指定的报告器来调整图像大小。由于报告器将文本与图像的其他部分一起缩小,因此,除非放大图像,否则细节可能无法辨认。请参阅调整图片快照大小

注意

当以下属性设置组合出现时,可能会发生 java.lang.OutOfMemoryError

  • Scaling 设置为 "zoom"ZoomMaxHeightMaxWidth 属性设置为较大值

  • Scaling 设置为 "custom"HeightWidth 属性设置为较大值

要避免此错误,对于缩放 Scaling,请使用较小的 ZoomMaxHeightMaxWidth 属性值。对于 Scaling 设置为 "custom",请使用较小的 HeightWidth 属性值。

数据类型: char | string

快照图像的高度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个测量单位的缩写。例如,"2in" 指定两英寸。默认快照为 6 英寸。有效的缩写是:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 派卡

  • "pt" - 磅

注意

对于 PDF 图像,宽度和高度的尺寸限制为 10000px。对于所有其他图像类型,尺寸限制是屏幕尺寸。

示例: "2in"

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

快照图像的宽度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个测量单位的缩写。例如,"2in" 指定两英寸。默认快照宽度为 6.5 英寸。有效的缩写是:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 派卡

  • "pt" - 磅

注意

对于 PDF 图像,宽度和高度的尺寸限制为 10000px。对于所有其他图像类型,尺寸限制是屏幕尺寸。

示例: "2in"

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

是否在快照中保留背景颜色,指定为数值或逻辑值 1 (true) 或 0 (false)。

  • true - 快照的背景颜色与快照源的背景颜色相同,并且忽略 Theme 属性。

  • false - 快照的背景颜色遵循 Theme 属性的设置。

属性:

GetAccess
public
SetAccess
public

数据类型: logical

自 R2025a 起

打印快照时使用的图形主题,指定为:

  • "light" - 以白色背景和深色图线及文字打印图窗。

  • "dark" - 以深色背景、浅色图线和文字打印图窗。

如果您手动设置了任何图形颜色,则快照会保留这些颜色(但图窗和坐标区的背景颜色除外),无论主题设置如何,都是如此。当 PreserveBackgroundColor 为 true 时,此属性将被忽略。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

该报告器的模板来源,以下列方式之一指定:

  • 字符向量或字符串标量,指定包含此报告器模板的文件的路径

  • 此报告器使用的模板或其模板库中包含此报告器模板的报告器或报告

  • 文档对象模型 (DOM) 文档或文档部分,该报告器使用其模板或其模板库包含该报告器的模板

指定的模板必须与您附加此报告器的报告类型相同。例如,对于 Microsoft® Word 报告,TemplateSrc 必须是 Word 报告模板。如果 TemplateSrc 属性为空,则此报告器将使用默认报告器模板作为报告的输出类型。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

此报告器的模板名称,指定为字符向量或字符串标量。该报告器的模板必须位于该报告器的 TemplateSrc 属性指定的模板的模板库中。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

此报告器的超链接目标,指定为指定链接目标 ID 的字符向量或字符串标量,或 mlreportgen.dom.LinkTarget 对象。字符向量或字符串标量值转换为 LinkTarget 对象。链接目标在输出报告中紧接着此报告器的内容。

属性:

GetAccess
public
SetAccess
public

方法

全部展开

示例

全部折叠

在报告中添加表面图的图窗并设置图窗题注和高度。

import mlreportgen.report.*
surf(peaks);
rpt = Report('peaks');
chapter = Chapter();
chapter.Title = 'Figure Example';
add(rpt,chapter);

fig = Figure();
fig.Snapshot.Caption = '3-D shaded surface plot';
fig.Snapshot.Height = '5in';

add(rpt,fig);
delete(gcf);
rptview(rpt);

在报告中添加两个数字。要将它们在页面上彼此相邻放置,请使用 DOM 表对象。

import mlreportgen.report.*
import mlreportgen.dom.*
rpt = Report('peaks');

surf(peaks(20));
figure = Figure();
peaks20 = Image(getSnapshotImage(figure,rpt));
peaks20.Width = '3in';
peaks20.Height = [];
delete(gcf);

surf(peaks(40));
figure = Figure();
peaks40 = Image(getSnapshotImage(figure,rpt));
peaks40.Width = '3in';
peaks40.Height = [];
delete(gcf);

t = Table({peaks20,peaks40;'peaks(20)','peaks(40)'});
add(rpt,t);
close(rpt);
rptview(rpt);

此示例生成一个 PDF 报告,说明了使用 print 命令调整图窗快照图像大小与使用 Snapshot 报告器的 Figure 属性指定的报告器调整大小之间的区别。

创建一个较宽的 MATLAB® 图窗。从图中创建三个 mlreportgen.report.Figure 报告器并将其添加到报告中。

  • 第一个 Figure 报告器没有调整图窗大小。

  • 第二个 Figure 报告器使用 print 命令来调整图窗大小。

  • 第三个 Figure 报告器使用 Snapshot 报告器来调整图窗大小。

import mlreportgen.report.*

fig = figure();
ax = axes(fig);
plot(ax, rand(1,100));

pos = fig.Position;
fig.Position = [pos(1) pos(2) 2*pos(3) pos(4)];

rpt = Report('example','pdf');

add(rpt, "Intrinsic figure size");
figReporter0 = Figure(fig);
figReporter0.Scaling = 'none';
add(rpt,figReporter0);

add(rpt, "Resized by print command");
figReporter1 = Figure(fig);
add(rpt,figReporter1);

add(rpt, "Resized by snapshot reporter");
figReporter2 = Figure(fig);
figReporter2.Scaling = 'none';
figReporter2.Snapshot.ScaleToFit = true;
add(rpt,figReporter2);

close(rpt);
delete(fig)
rptview(rpt);

以下是生成的报告中的数字:

限制

  • 在没有监视器的服务器上生成报告时,Figure 报告器无法拍摄快照。

提示

  • 报告生成器根据 Scaling 属性的值计算图窗快照的宽度和高度。图例是浮动元素,与坐标区或图窗内容没有紧密绑定。当使用 Scaling 值调整图窗的尺寸时,报告中的图例位置可能会与图窗中的位置发生偏移。

版本历史记录

在 R2017b 中推出

全部展开