misc.log

日常茶飯事とお仕事と

BIRTのチャート、X軸を15分刻みの時刻表示で

BIRTでチャートを描く際に、X軸に15分区切りの時系列を持って来たくて、データの設定で以下のような稚拙なJavaScriptを書きました。自分用メモね。

var dateSource = Date.parse(row["Timestamp"]);

var date = new Date();
date.setTime(dateSource);

var hourName = date.getHours().toString() + "時";
var minValue = date.getMinutes();
if (0 <= minValue && minValue < 15) {
	hourName + "00分";
} else if (15 <= minValue && minValue < 30) {
	hourName + "15分";
} else if (30 <= minValue && minValue < 45) {
	hourName + "30分";
} else if (45 <= minValue && minValue < 60) {
	hourName + "45分";
}

DateTime型のタイムスタンプを持つデータセットを用いて、時間帯別のグラフを表示する際に利用しました。具体的には、「Edit Chart」の「Select Data」タブにあるグラフのX軸設定、「Category (X) Series」のところで、「fx」で設定できる式エディタに上記のコードを書きます。

結果は「*時15分」などの文字列になるのでグルーピング設定として、「Type: Text」「Unit: String」「Interval: 1」でグループ化設定を行えば、15分ごとの時間帯で束ねたX軸のできあがりです。Y軸になにをもってくるかは好きに選んでください。

ちなみに、上記の例では「日をまたがっても、時刻単位で仕分ける」となっています。今日の8時も明日の8時も同じカテゴリでグルーピングされるので、シーケンシャルに「15分おき」にしたいのであれば、getHoursの他に月日も取って文字列として連結してください。

BIRT: A Field Guide (Eclipse Series)

BIRT: A Field Guide (Eclipse Series)