スパークラインは軽量なチャート部品
2014J v2アップデートで盛り込まれたスパークライン(wijsparkline)は、小型のチャートをインラインで表示するウィジェットです。他のチャートウィジェットよりも小型、軽量で、図2のように1ページ内に複数のスパークラインを表示する使い方が想定されています。
図2ではWijmoが提供するグリッド(wijgrid)の要素としてスパークラインを表示しています。スパークライン指定の記述をリスト1に示します。
columns: [ // 中略 { dataKey: "diff", headerText: "月次純増数", textAlignment: "center", cellFormatter: function (args) { if (args.row.type & $.wijmo.wijgrid.rowType.data) { var diffSparkline = $("<div></div>") // ... (1) .css({ height: 80, width: 200 }); args.$container.empty() // ... (2) .append(diffSparkline); diffSparkline.wijsparkline({ // ... (3) data: args.row.data.diff, type: "area", valueAxis: true, origin: 0 }); return true; } } }, // 中略 ]
(1)でスパークラインを表示するdiv要素を作成し、(2)でグリッドに設定しています。そのdiv要素に対して(3)でスパークラインの指定を記述しています。001_wijmo_sparkline1.htmlでは純増数とMNPでこの処理を2組記述しているため、グリッドの各行にスパークラインが2個ずつ描画されます。
スパークラインの基本
それではスパークラインウィジェットの利用法をより詳しく説明します。シンプルなスパークラインを表示する例はリスト2のようになります
<script type="text/javascript"> require(["wijmo.wijsparkline"], function(){ $(function(){ $("#wijsparkline1").wijsparkline({ // スパークラインの設定 ...(1) data: [23, 15, 3, -2, -10, 0, 10, 25, 12, -8, -15, 5, 3, 18, 14, -10], type: "area" }); }); }); </script> ...中略... <!-- スパークラインを表示する要素 ...(2) --> <div id="wijsparkline1" style="width:320px; height:240px;"> </div> </body> </html>
(1)でスパークラインを表示するwijsparklineの設定を行っています。ここではオプションとしてdataにグラフデータ、typeにグラフ種類("area")を設定しています。オプションについては後述します。この設定により(2)のHTML要素にスパークラインが表示されます。
リスト1を実行すると、図3のように設定されたデータがグラフ表示されます。
wijsparklineメソッドにJavaScriptオブジェクトを設定することでオプションを指定できます。主なオプションを表1に示します。
パラメータ名 | 内容 | 初期値 |
---|---|---|
data | 表示するデータ(配列) | null |
type | グラフの種類 | "line" |
valueAxis | 正負の値を区別する | false |
origin | 値軸をセンタリングする位置 | 0 |
seriesStyles | 各系列のスタイル指定 | [](空配列) |
ここでグラフの種類(type)は線グラフ("line")、面グラフ("area")、棒グラフ("column")が指定できます。
オプションを指定した例をリスト3に示します。seriesStylesには正・負・ゼロのそれぞれについて色を指定しています。
$("#wijsparkline1").wijsparkline({ type: "column", // グラフ種類 seriesStyles: [{ // 表示型式 fill: "#0066ff", // 正の値の色 zeroStyle:{fill: "green"}, // ゼロの値の色 negStyle: {fill: "#ff8080"}, // 負の値の色 }], valueAxis: true, // 正負を区別 origin: 0 // 値軸をセンタリングする位置 });
リスト3を実行すると、図5のように、正の値・ゼロの値・負の値がそれぞれ指定された色で棒グラフが表示されます。