Создание отчета с пейзажными страницами

В этом примере показано, как создать отчет с пейзажными страницами шириной 11 дюймов и высотой 8,5 дюймов. Использование пейзажных страниц позволяет подгонять содержимое, который является слишком широким, чтобы помещаться на портретной странице, например, параллельные изображения, изображенные здесь.

Импортируйте пакеты DOM и Report API так, чтобы не использовать длинные, полные имена классов.

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

Создайте контейнер для отчета PDF. Чтобы создать отчет Word, измените тип выхода с "pdf" на "docx".

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

Установите значение размещения среды отчета равным true. Это устанавливает всёся размещение отчета в ландшафт.

rpt.Layout.Landscape = true;

Составьте главу с заголовком «Типы графиков косинусоидных значений со случайным шумом».

chapter = Chapter("Title", "Types of Cosine Value Plots with Random Noise");

Создайте переменные для построения графика. Создайте x как 200 значений с равными интервалами между 0 и 3pi. Создайте значения y как косинуса со случайным шумом.

x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);  

Создать рисунок объекты значений x и y: Гистограмма (рис. 1), график поля точек (рис. 2) и 2D графика (рис. 3).

Создайте объекты изображений, обернутые вокруг файлов изображений моментального снимка рисунка. Установите масштабирование объектов рисунка так, чтобы они помещались в записи таблицы.

imgStyle = {ScaleToFit(true)};

fig1 = Figure(bar(x, y));
fig1Img = Image(getSnapshotImage(fig1, rpt));
fig1Img.Style = imgStyle;
delete(gcf);

fig2 = Figure(scatter(x,y));
fig2Img = Image(getSnapshotImage(fig2, rpt));
fig2Img.Style = imgStyle;
delete(gcf);


fig3 = Figure(plot(x,y));
fig3Img = Image(getSnapshotImage(fig3, rpt));
fig3Img.Style = imgStyle;
delete(gcf);

Вставьте изображения в единственную строку таблицы невидимого размещения 1x5 (lo_table) (пространство между рисунками при наличии 2 пустых записей таблицы). Таблица считается невидимой, если границы не определены ни для таблицы, ни для ее записей. Размеры изображений соответствуют значениям в таблице, только если заданы высота и ширина записей таблицы.

lo_table = Table({fig1Img, ' ', fig2Img, ' ',fig3Img});
lo_table.entry(1,1).Style = {Width('3.2in'), Height('3in')};
lo_table.entry(1,2).Style = {Width('.2in'), Height('3in')};
lo_table.entry(1,3).Style = {Width('3.2in'), Height('3in')};
lo_table.entry(1,4).Style = {Width('.2in'), Height('3in')};
lo_table.entry(1,5).Style = {Width('3in'), Height('3in')};

Добавить таблицу в главу и главу в отчет.

add(chapter, lo_table);
add(rpt, chapter);

Составьте главу с заголовком «Поверхностный график».

chapter1 = Chapter("Title", "Surface Plot");

Создайте объект рисунка для объемной поверхностной диаграммы (фиг.4). Создайте объекты изображений, обернутые вокруг файлов изображений моментального снимка рисунка.

fig4 = Figure(surf(peaks(20)));
fig4Img = Image(getSnapshotImage(fig4, rpt));
fig4Img.Style = imgStyle;
delete(gcf);

Добавьте сгенерированный объект изображения в главу и главу в отчет.

add(chapter1, fig4Img);
add(rpt, chapter1);

Сгенерируйте и отобразите отчет

close(rpt);
rptview(rpt);

Сгенерированный отчет включает параллельные снимки рисунка и объемную поверхностную диаграмму на страницах ландшафта. Сгенерированные побочные снимки фигуры четко разборчивы.