EspressChartを使ってグラフを作成する際に、数値や日付の書式設定も変更することが可能で、数値であれば¥40,000,000、日付であれば23/09といった表記にすることも可能です。
さらにはロケールに応じた表記も可能なため、日本に限らず海外のロケールに応じて表記するというのも可能です。
本ブログでは、数値や日付をAPI上でロケールに応じたフォーマットで表記する方法、ロケール関係なしでのフォーマットで表記する方法について記載いたします。
ロケールに応じたフォーマット表記
ロケールの設定
ロケールを設定するには、QbChartのsetLocaleメソッドを使用してチャート全体に適用する方法と、LicaleDataTimeFormat(日付)オブジェクトやLicaleNumericFormat(数値)オブジェクトを使用して各オブジェクトに対してロケールを適用する方法があります。
- チャート全体に適用する方法
【サンプルコード】
Applet parent = null;
int dimension = QbChart.VIEW2D;
int chartType = QbChart.COL;
int fileType = QbChart.DATAFILE;
String fileName = "data/sample1.csv";
String tplName = "tpl/sample1.tpl";
QbChart chart = new QbChart(parent, dimension, chartType, fileType, fileName, false, null, tplName);
chart.setLocale(Locale.US);
- 各オブジェクトにロケールを適用する方法
・LocaleDataTimeFormatオブジェクトの場合
DataFormatオブジェクト生成のためのメソッド |
|
メソッド |
概要 |
getInstance |
日付/時刻をSHORTスタイルで整形 |
getDateInstance |
日付を指定のスタイルで整形 |
getTimeInstance |
時刻を指定のスタイルで整形 |
getDateTimeInstance |
日付/時刻を指定のスタイルで整形 |
DateFormatオブジェクトの引数 |
||
設定値 |
概要 |
戻り値(例) |
FULL |
すべての要素を含むスタイル |
2020年5月24日 15時25分07秒 JST |
LONG |
長い形式 |
2020/05/24 15:34:26 JST |
MEDIUM |
中くらいの形式 |
2020/05/24 15:35:00 |
SHORT |
短い形式 |
20/05/24 15:35 |
・LocaleNumericFormatオブジェクトの場合
NumberFormatオブジェクト生成のためのメソッド |
|
メソッド |
概要 |
getInstance |
汎用的な数値フォーマット |
getCurrencyInstance |
通過フォーマット |
getIntgerInstance |
整数フォーマット |
getPercentInstance |
パーセントフォーマット |
【サンプルコード】
QbChart.setEspressManagerUsed(false);
Applet parent = null;
int dimension = QbChart.VIEW2D;
int chartType = QbChart.COL;
int fileType = QbChart.DATAFILE;
String fileName = "data/sample1.csv";
String tplName = "tpl/sample1.tpl";
QbChart chart = new QbChart(parent, dimension, chartType, fileType, fileName, false, null, tplName);
LocaleDateTimeFormat ldf = LocaleDateTimeFormat.getDateInstance();
ldf.format(DateFormat.FULL);
ldf.setLocale(Locale.US);
int xColIndex = 0;
chart.gethDataPoints().setLabelFormat(xColIndex, ldf);
LocaleNumericFormat lnf = LocaleNumericFormat.getCurrencyInstance();
lnf.setLocale(Locale.US);
int yColIndex = 2;
chart.gethDataPoints().setLabelFormat(yColIndex, lnf);
ロケール関係なしでのフォーマット表記
ロケールを考慮せずフォーマットを指定する場合は、DateTimeFormat(日付)オブジェクトやNumericFormat(数値)を使用します。
【サンプルコード】
QbChart.setEspressManagerUsed(false);
Applet parent = null;
int dimension = QbChart.VIEW2D;
int chartType = QbChart.COL;
int fileType = QbChart.DATAFILE;
String fileName = "data/sample1.csv";
String tplName = "tpl/sample1.tpl";
QbChart chart = new QbChart(parent, dimension, chartType, fileType, fileName, false, null, tplName);
DateTimeFormat dtf = new DateTimeFormat();
dtf.yearSymbol = DateTimeFormat.YEAR_1999;//YEAR_1999 or YEAR_99
dtf.hidedate = true;//日を隠す
dtf.orderSymbol = DateTimeFormat.YMD;//YMD or MDY or DMY
dtf.separator1 = "/";//年/月
chart.gethXAxis().setLabelFormat(dtf);
NumericFormat nf = new NumericFormat();
nf.currencyPos = 0;//Symbolの位置を指定
nf.currencySymbol = '¥';
nf.decimal = 0;//小数点以下の桁数
chart.gethYAxis().setLabelFormat(nf);
関連するトピックス:
- レポートオブジェクトの作成【Java対応レポート・帳票ツールEspressReport】
- チャート・グラフをWeb上に展開するプログラム【Javaチャート・グラフ作成ツールEspressChart】
- 異なるフラットフォームでチャートサイズを正確にコントロールする方【Javaグラフ作成ツールEspressChart】
- タイトルの設定(Java実行時)【Javaグラフ作成ツールEspressChart/レポート・帳票ツールEspressReport】
- データなし(No Data To Plot)の時の表示と文言変更【Javaチャート・グラフ作成ツールEspressChart】
- Javaオブジェクト/アレー データとEJB【Javaチャート・グラフ作成ツールEspressChart】
- レポート・帳票をweb上に展開するプログラム【Java対応レポート帳票ツール:EspressReport】
- ETLツール不要のデータ抽出・デザインと多様なデータ形式のサポート【Javaグラフ作成ツールEspressChart】
- フリーラベル機能(テキスト挿入)【Javaチャート・グラフ作成ツールEspressChart】
- Y軸を無視してただの文字項目として扱うこと方法?【Javaチャート・グラフ作成ツールEspressChart】