主要内容

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

mlreportgen.report.Sparkline 类

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

迷你图报告器

自 R2026a 起

描述

使用 mlreportgen.report.Sparkline 创建一个迷你图报告器。

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

类属性

HandleCompatible
true

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

创建对象

描述

reporter = mlreportgen.report.Sparkline 创建了一个空的 Sparkline 报告器对象。使用报告器属性来指定迷你图的数据、迷你图的外观、要包含的迷你图相关信息以及报告选项。向报告中添加空的 Sparkline 报告器会产生错误。

reporter = mlreportgen.report.Sparkline(data) 创建了一个名为 Sparkline 的报告器,并将 Data 属性设置为 data

示例

reporter = mlreportgen.report.Sparkline(PropertyName=Value) 使用名称-值参量设置报告器的属性。您可以按任意顺序指定多个名称-值参量。

输入参量

全部展开

用于生成迷你图的数据,指定为双精度数组。此参量设置 Data 属性。

属性

全部展开

用于生成迷你图的数据,指定为双精度数组。

属性:

GetAccess
public
SetAccess
public

数据类型: double

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

注意

报告器初始化 Snapshot 属性。请勿清除或修改此属性。

属性:

GetAccess
public
SetAccess
public

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

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

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

"jpg"JPEG 图像
"png"可移植网络图形
"svg"可缩放矢量图

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

要绘制的迷你图类型,指定为以下值之一:

迷你图样式描述
"dashed"虚线
"dotted"点线
"solid"单线

属性:

GetAccess
public
SetAccess
public

线条颜色,指定为字符向量或字符串标量,其中包含 CSS 颜色名称、十六进制 RGB 值或十进制 RGB 值

格式
CSS 颜色名称指定一个 CSS 颜色名称。有关 CSS 颜色名称的列表,请参阅 https://www.w3.org/wiki/CSS/Properties/color/keywords
十六进制 RGB 值使用格式 "#RRGGBB"。使用 # 作为第一个字符,并使用两位十六进制数作为红色、绿色和蓝色的值。您可以使用大写或小写字母。
十进制 RGB 颜色值请使用格式 "rgb(r,g,b)",其中 rgb 是以逗号分隔的正整数,分别表示红色、绿色和蓝色的值。每个值的范围必须介于 0255 之间。

示例: "red" 使用 CSS 颜色名称指定红色。

示例: "#0000ff" 使用十六进制 RGB 值指定蓝色。

示例: "rgb(128,0,128)" 使用十进制 RGB 颜色值指定紫色。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

迷你图的宽度,指定为字符向量或字符串标量,其中包含一个数字,后跟一个计量单位的缩写。例如,"0.75pt" 表示 0.75 点。有效的缩写是:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 派卡

  • "pt" - 磅

示例: "0.75pt"

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

微型图上用于显示标记的数据点,指定为字符向量、字符串标量、字符向量的元胞数组,或由以下值组成的字符串标量数组:

标记点描述
[]无标记
"all"在所有数据点处显示标记
"min"在最小点处显示标记
"max"在最高分处显示标记
"first"在第一个数据点处显示标记
"last"在最后一个数据点处显示标记
"negative"在负数据点处显示标记

示例: "all"

示例: {'first' 'last'}

示例: ["max" "first" "last"]

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

标记样式,指定为以下值之一:

标记点描述
"square"将标记显示为正方形
"circle"将标记显示为圆圈

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

标记的默认颜色,指定为包含 CSS 颜色名称、十六进制 RGB 值或十进制 RGB 值的字符向量或字符串标量

格式
CSS 颜色名称指定一个 CSS 颜色名称。有关 CSS 颜色名称的列表,请参阅 https://www.w3.org/wiki/CSS/Properties/color/keywords
十六进制 RGB 值使用格式 "#RRGGBB"。使用 # 作为第一个字符,并使用两位十六进制数作为红色、绿色和蓝色的值。您可以使用大写或小写字母。
十进制 RGB 颜色值请使用格式 "rgb(r,g,b)",其中 rgb 是以逗号分隔的正整数,分别表示红色、绿色和蓝色的值。每个值的范围必须介于 0255 之间。

示例: "red" 使用 CSS 颜色名称指定红色。

示例: "#0000ff" 使用十六进制 RGB 值指定蓝色。

示例: "rgb(128,0,128)" 使用十进制 RGB 颜色值指定紫色。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

标记的大小,指定为字符向量或字符串标量,其中包含一个数字,后跟一个计量单位的缩写。例如,"0.75pt" 表示 0.75 点。有效的缩写是:

  • "px" - 像素

  • "cm" - 厘米

  • "in" - 英寸

  • "mm" - 毫米

  • "pc" - 派卡

  • "pt" - 磅

您也可以通过省略单位来指定像素值。例如,"5" 指定 5 像素。

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

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

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

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

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

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

属性:

GetAccess
public
SetAccess
public
NonCopyable
true
Dependent
true

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

属性:

GetAccess
public
SetAccess
public

数据类型: char | string

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

属性:

GetAccess
public
SetAccess
public

方法

全部展开

示例

全部折叠

本示例演示了如何在报告表中添加迷你图。

导入报告和 DOM API 命名空间,以避免使用冗长的完全限定名称。

import mlreportgen.report.*
import mlreportgen.dom.*

根据公司名称列表、销售数据以及月份名称,创建一张包含列表中四家公司 1 月至 6 月销售数据的表。销售数据矩阵的行对应于公司,列对应于月份。

companyNames = ["Apple", "Amazon", "Microsoft", "Google"];

salesData = [
    38, 56, 50, 2, 45, 65;   % Data for Apple
    43, 78, 53, 72, 48, 75;  % Data for Amazon
    50, 60, 55, 65, 52, 70;  % Data for Microsoft
    55, 70, 60, 75, 57, 80]; % Data for Google

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"];

"companyNames" 数组是第一列,后面各列分别对应每个月的销售数据。最后一列 "Trends" 为空。在本示例中,您将使用每家公司的迷你图来填充此列。

tbl = table(companyNames', ...
    salesData(:, 1), salesData(:, 2), salesData(:, 3), ...
    salesData(:, 4), salesData(:, 5), salesData(:, 6), ...
    char.empty(4, 0), ...
'VariableNames', ['CompanyName', months, "Trends"]);

创建一个标题为 "StockMarketReport" 的新报告,并将输出格式指定为 PDF。

rpt = Report("StockMarketReport","pdf");

根据表 tbl 创建一个 MATLABTable 报告器。

mlTable = MATLABTable(tbl);

遍历表中的每一行,并执行以下操作,根据各公司的销售数据添加迷你图。

  • 为当前行创建一个新的表条目。

  • 为当前公司的销售数据创建一个迷你图。

  • 获取迷你图的快照图像,以将其包含在报告中。

  • 使用捕获的快照图像创建一个 DOM 图像对象。

  • 将 DOM 图像追加到表条目(这会将迷你图添加到单元格中)。

  • 将表条目添加到 MATLAB 表中对应的行。

for iRow = 1:mlTable.Body.NRows
    tEntry = TableEntry();
    sparkline = Sparkline(salesData(iRow, :));
    image = getSnapshotImage(sparkline, rpt);
    domImage = Image(image);
    append(tEntry, domImage);
    append(mlTable.Body.row(iRow),tEntry);
end

将包含迷你图的表追加到报告。

append(rpt,mlTable);

关闭并查看报告。

close(rpt);
rptview(rpt);

本示例演示了如何在报告中添加一个带有题注的自定义迷你图。

导入报告和 DOM API 命名空间,以避免使用冗长的完全限定名称。

import mlreportgen.dom.*
import mlreportgen.report.*

创建报告。

rpt = Report("MonthlyTrends", "pdf");

创建一个表,其中包含四周内的每日访客数据以及每周的访客总数。

headerContent = {...
    'Weeks', 'Day 1', 'Day 2', 'Day 3', 'Day 4', ...
    'Day 5', 'Day 6', 'Day 7', 'Total Visitors'...
    };

totalVisitors = [193, 213, 195, 152];

bodyContent = {...
    'Week 1', 12, 18, 25, 30, 33, 35, 40, totalVisitors(1); ...
    'Week 2', 19, 28, 30, 31, 31, 36, 38, totalVisitors(2); ...
    'Week 3', 12, 26, 29, 26, 30, 31, 33, totalVisitors(3);
    'Week 4', 21, 8, 19, 23, 21, 30, 30, totalVisitors(4)...
    };

指定表的格式。

tableStyle = {Width("80%"), ...
    Border("solid"), ...
    RowSep("solid"), ...
    ColSep("solid")};

根据指定的内容和格式创建正式表。

tbl = FormalTable(headerContent, bodyContent);
tbl.Style = tableStyle;

指定标题行的格式。

headerStyle = {BackgroundColor("Orange"), ...
    Bold(true)};
firstRow = tbl.Children(1);
firstRow.Style = headerStyle;

将表条目的对齐方式设置为居中。

tbl.TableEntriesHAlign = "center";

将表追加到报告。

append(rpt,tbl);

添加一段文字,对该迷你图进行说明。

append(rpt, LineBreak());
append(rpt,Paragraph(...
    "Sparkline illustrating the monthly trend of visitor attendance"));
append(rpt, LineBreak());

创建、自定义并将迷你图追加到报告中。

sparkline = Sparkline(totalVisitors);

sparkline.LineColor = "green";
sparkline.LineStyle = "dotted";
sparkline.LineWidth = "1.5pt";

sparkline.MarkerColor = "blue";
sparkline.MarkerStyle = "circle";
sparkline.MarkerPoints = "all";
sparkline.MarkerSize = "3pt";

sparkline.Snapshot.Height = "1in";
sparkline.Snapshot.Width = "5in";

sparkline.Snapshot.Caption = "Monthly trend of visitor attendance";

append(rpt,sparkline);

关闭并查看报告。

close(rpt);
rptview(rpt);

A table showing the number of visitors over four weeks, with daily counts from Day 1 to Day 7 and total visitors for each week. Below the table, a sparkline graph depicts the monthly trend of visitor attendance. The sparkline is a green dotted line with blue circulars markers.

版本历史记录

在 R2026a 中推出