Main Content

左右に並べられた Figure

この例では、ページ上で Figure を左右に並べて配置する方法を説明します。

この例では、非表示テーブル (境界線も色も付いていないテーブル) の隣接するエントリに、各 Figure を配置します。非表示テーブルによって、挿入された図が左右に並んで表示されます。

長い完全修飾クラス名を使用せずに済むよう、DOM およびレポートの API パッケージをインポートします。また、レポート オブジェクトも作成します。

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

% To create a Word report, change the output type from "pdf" to "docx". 
% To create an HTML report, change "pdf” to “html” or "html-file" for a 
% multifile or single-file report, respectively.
rpt = Report('myreport', 'pdf');

表面プロット (fig1) およびウォーターフォール プロット (fig2) 用の figure オブジェクトを作成します。次に、Figure スナップショット イメージ ファイルをラップする image オブジェクトを作成します。以下で作成したテーブル エントリに収まるように、イメージをスケーリングします。

imgStyle = {ScaleToFit(true)};

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

fig2 = Figure(waterfall(peaks(20)));
fig2Img = Image(getSnapshotImage(fig2, rpt));
fig2Img.Style = imgStyle;
delete(gcf);

1 行 3 列の非表示レイアウトのテーブル (lo_table) の唯一の行にイメージを挿入します。テーブルおよびそのすべてのテーブル エントリに対して境界線が定義されていない場合、そのテーブルは非表示とみなされます。

lo_table = Table({fig1Img, ' ', fig2Img});

イメージは、テーブル エントリの高さと幅が指定されている場合にのみ、テーブル エントリに収まるようにサイズが調整されます。

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')};

余白を挟んでページ幅一杯に広がるように、テーブルの幅を設定します。ResizeToFitContents を false に設定して、テーブル列のサイズ変更を防ぎ、代わりに指定した幅を使用するようにします。

lo_table.Style = {Width('100%'), ResizeToFitContents(false)};

レポートを生成して表示します。

add(rpt, lo_table);
close(rpt);
rptview(rpt);