スクリプトでチャートをカスタマイズする方法
対象製品
Elixir Report 8.7J
詳細
チャートウィザードの[スクリプト]タブにスクリプトを記述することで、チャートをカスタマイズして出力できます。下記のサンプルをご参考ください。
このナレッジベースで紹介したスクリプトを適用したチャートは、こちらのサンプルテンプレートに含まれています。ファイル
解凍して、リポジトリ名"/samples/chartsctipt"となるように配置してお試しください。
なお、チャートエレメントは内部的にオープンソースのJFreeChartを使用しているため、JFreeChartのクラスで定義された定数を指定している部分があります。
系列の塗りつぶし
※サンプルの[ChangeColorPattern]セクションに含まれています。
系列の色変更:
(適用対象)エリア/棒/円
■サンプルコード
importClass(Packages.com.elixirtech.chart2.custom.CustomDrawingSupplier);
// 色を表す定義済み文字列は、ヘルプドキュメントの
// [2章 レポート設計]-[7.その他の機能]-[色]を参照してください
paints = ["DarkSeaGreen","PowderBlue","Gold","Lightpink","HoneyDew"];
cds = new CustomDrawingSupplier();
cds.setPaintNames(paints);
plot.drawingSupplier = cds;
※系列の色は、スクリプトを使用せずに、チャートウィザードの[色]から設定することも可能です。
パターン表示:
(適用対象)エリア/棒/円
■サンプルコード
// DIAG,DIAG2,HORIZ,HORIZ2,NONE,RDIAG,RDIAG2,STITCH,VERT,VERT2,VWAVE,WAVE
paints = ["RDIAG","Horiz","VWave","Vert","STITCH"];
cds = new CustomDrawingSupplier();
cds.setPaintNames(paints);
plot.drawingSupplier = cds;
※チャートウィザードの[色]タブで、[色の自動設定]チェックボックスをオフにしてください。
※パターン表示は、スクリプトを使用せずに、チャートウィザードの[色]から設定することも可能です。
背景に画像表示
※サンプルの[BackgroundImage]セクションに含まれています。
(適用対象)3D、エリア、横棒、縦棒、折れ線、メーター、円、ポーラー、株式、ウォーターフォール、散布図、複合
■サンプルコード
var is = Packages.com.elixirtech.util.
URLLoader.getInputStream("repository:/samples/chartscript/grapecity_logo.gif");
var im = Packages.javax.imageio.ImageIO.read(is);
// プロット領域の背景(TOP_RIGHT)に表示
plot.backgroundImage = im;
plot.setBackgroundImageAlignment(Packages.org.jfree.ui.Align.TOP_RIGHT);
// グラフ全体の背景(BOTTOM)に表示
backgroundImage = im;
setBackgroundImageAlignment(Packages.org.jfree.ui.Align.BOTTOM);
複数円グラフの凡例(デフォルト表示)を表示しない
※サンプルの[PieLabel]セクションに含まれています。
■サンプルコード
var chart = plot.getPieChart();
chart.removeLegend();
軸の制御
※サンプルの[Axis]セクションに含まれています。
Y軸を右に表示:
■サンプルコード
plot.setRangeAxisLocation(Packages.org.jfree.chart.axis.AxisLocation.TOP_OR_RIGHT);
Y軸の範囲設定(-50~400):
■サンプルコード
var axis1 = plot.getRangeAxis();
axis1.setRange(-50, 400);
フォントの変更
※サンプルの[ChangeFont]セクションに含まれています。
凡例のフォント変更:
■サンプルコード
getLegend().setItemFont(new java.awt.Font("Serif",0,20));
メーターグラフの値と領域の値のフォント変更:
■サンプルコード
//グラフの値
plot.setValueFont(new java.awt.Font("SansSerif",3,20));
//領域の値のフォントと色
plot.setTickLabelFont(new java.awt.Font("SansSerif",1,14));
plot.setTickLabelPaint(java.awt.Color.yellow);
影を表示しない
※サンプルの[Shadow]セクションに含まれています。
(適用対象)横棒、縦棒
■サンプルコード
importPackage(Packages.com.elixirtech.chart2.plot);
var chart = plot.getRenderer();
chart.setShadowVisible(false);
(適用対象)円
■サンプルコード
plot.setShadowPaint(null);
(適用対象)複数円
■サンプルコード
plot.getPieChart().getPlot().setShadowPaint(null);
このナレッジベースで紹介したスクリプトを適用したチャートは、こちらのサンプルテンプレートに含まれています。ファイル
解凍して、リポジトリ名"/samples/chartsctipt"となるように配置してお試しください。
なお、チャートエレメントは内部的にオープンソースのJFreeChartを使用しているため、JFreeChartのクラスで定義された定数を指定している部分があります。
系列の塗りつぶし
※サンプルの[ChangeColorPattern]セクションに含まれています。
系列の色変更:
(適用対象)エリア/棒/円
■サンプルコード
importClass(Packages.com.elixirtech.chart2.custom.CustomDrawingSupplier);
// 色を表す定義済み文字列は、ヘルプドキュメントの
// [2章 レポート設計]-[7.その他の機能]-[色]を参照してください
paints = ["DarkSeaGreen","PowderBlue","Gold","Lightpink","HoneyDew"];
cds = new CustomDrawingSupplier();
cds.setPaintNames(paints);
plot.drawingSupplier = cds;
※系列の色は、スクリプトを使用せずに、チャートウィザードの[色]から設定することも可能です。
パターン表示:
(適用対象)エリア/棒/円
■サンプルコード
// DIAG,DIAG2,HORIZ,HORIZ2,NONE,RDIAG,RDIAG2,STITCH,VERT,VERT2,VWAVE,WAVE
paints = ["RDIAG","Horiz","VWave","Vert","STITCH"];
cds = new CustomDrawingSupplier();
cds.setPaintNames(paints);
plot.drawingSupplier = cds;
※チャートウィザードの[色]タブで、[色の自動設定]チェックボックスをオフにしてください。
※パターン表示は、スクリプトを使用せずに、チャートウィザードの[色]から設定することも可能です。
背景に画像表示
※サンプルの[BackgroundImage]セクションに含まれています。
(適用対象)3D、エリア、横棒、縦棒、折れ線、メーター、円、ポーラー、株式、ウォーターフォール、散布図、複合
■サンプルコード
var is = Packages.com.elixirtech.util.
URLLoader.getInputStream("repository:/samples/chartscript/grapecity_logo.gif");
var im = Packages.javax.imageio.ImageIO.read(is);
// プロット領域の背景(TOP_RIGHT)に表示
plot.backgroundImage = im;
plot.setBackgroundImageAlignment(Packages.org.jfree.ui.Align.TOP_RIGHT);
// グラフ全体の背景(BOTTOM)に表示
backgroundImage = im;
setBackgroundImageAlignment(Packages.org.jfree.ui.Align.BOTTOM);
複数円グラフの凡例(デフォルト表示)を表示しない
※サンプルの[PieLabel]セクションに含まれています。
■サンプルコード
var chart = plot.getPieChart();
chart.removeLegend();
軸の制御
※サンプルの[Axis]セクションに含まれています。
Y軸を右に表示:
■サンプルコード
plot.setRangeAxisLocation(Packages.org.jfree.chart.axis.AxisLocation.TOP_OR_RIGHT);
Y軸の範囲設定(-50~400):
■サンプルコード
var axis1 = plot.getRangeAxis();
axis1.setRange(-50, 400);
フォントの変更
※サンプルの[ChangeFont]セクションに含まれています。
凡例のフォント変更:
■サンプルコード
getLegend().setItemFont(new java.awt.Font("Serif",0,20));
メーターグラフの値と領域の値のフォント変更:
■サンプルコード
//グラフの値
plot.setValueFont(new java.awt.Font("SansSerif",3,20));
//領域の値のフォントと色
plot.setTickLabelFont(new java.awt.Font("SansSerif",1,14));
plot.setTickLabelPaint(java.awt.Color.yellow);
影を表示しない
※サンプルの[Shadow]セクションに含まれています。
(適用対象)横棒、縦棒
■サンプルコード
importPackage(Packages.com.elixirtech.chart2.plot);
var chart = plot.getRenderer();
chart.setShadowVisible(false);
(適用対象)円
■サンプルコード
plot.setShadowPaint(null);
(適用対象)複数円
■サンプルコード
plot.getPieChart().getPlot().setShadowPaint(null);