Spread.Viewsでは、スパークラインを使用して、データの傾向を小さなグラフで表現できます。スパークラインでは、右端のデータポイントに最新の値を表示し、この最新値を過去の値と比較します。
次の表は、各スパークラインの作成に使用する数式を示します。
スパークライン | 数式 | 説明 |
---|---|---|
円スパークライン | =PIESPARKLINE(column\percentage,color1?,color2?,.....) | columnまたはpercentage: 列値を使用する場合は、列値は数値または数値配列である必要があります。 パーセンテージは値となります。 値の解析が無効な場合は、この値は「0」とみなされます。 ColorInfo: - 色パラメータの数が範囲数と同数かそれ以上の場合は、値と色は1対1で対応します。 - 色パラメータの数が範囲数を下回る場合は、指定した色が再利用されます。また、個々のセクターがそれぞれ異なる色となるように、線形グラデーションが使用されます。 - 色を指定しない場合は、デフォルトで「濃い灰色」が使用されます。 |
折れ線スパークライン | =LINESPARKLINE(data, dateAxisData?, setting?) | パラメータの説明: data - スパークラインデータを表す列参照 dateAxisData - スパークラインの日付軸データを表す列参照 setting - JSON書式による文字列。注意: dateAxisDataとsettingは省略可能です。また、settingプロパティの個々の値には、それぞれデフォルト値が用意されています。 |
縦棒スパークライン | =COLUMNSPARKLINE(data, dateAxisData?, setting?) | パラメータの説明: data - スパークラインデータを表す列参照 dateAxisData - スパークラインの日付軸データを表す列参照 setting - JSON書式による文字列。注意: dateAxisDataとsettingは省略可能です。また、settingプロパティの個々の値には、それぞれデフォルト値が用意されています。 |
勝敗スパークライン | =WINLOSSSPARKLINE(data, dateAxisData?, setting?) | パラメータの説明: data - スパークラインデータを表す列参照 dateAxisData - スパークラインの日付軸データを表す列参照 setting - JSON書式による文字列。注意: dateAxisDataとsettingは省略可能です。また、settingプロパティの個々の値には、それぞれデフォルト値が用意されています。 |
円スパークライン、折れ線スパークライン、縦棒スパークライン、勝敗スパークラインといったさまざまなスパークラインを追加するには、次の手順を実行します。次の図は、さまざまな売上動向データを示します。
サンプルコード
DataView参照の後に、次の参照を追加します。
<script src="./gc.spread.views.sparkline.10.40.20162.0.min.js">
グリッドの作成中に描画される、さまざまなスパークライン変数を定義します。
function renderWinlosssparkline(data, container) { var newData = []; newData.push(data.may - standard); newData.push(data.june - standard); newData.push(data.july - standard); newData.push(data.aug - standard); newData.push(data.sept - standard); newData.push(data.oct - standard); var winlossSparkline = new GC.Spread.Views.Plugins.Sparkline.WinlossSparkline({ values: newData, setting: { axisColor: '#0C0A3E', markersColor: '#FED766', negativeColor: '#FED766', seriesColor: '#995D81', displayXAxis: true, showFirst: true, showHigh: true, showLast: true, showLow: true, showNegative: true, showMarkers: true } }); winlossSparkline.paint(container); } var lineSparklineSetting = { highMarkerColor: '#995D81', lowMarkerColor: '#FED766', markersColor: 'black', seriesColor: '#009FB7', showMarkers: true, showHigh: true, showLow: true, lineWeight: 2, minAxisType: 2, maxAxisType: 2, manualMax: 25000, manualMin: 0 }; var columnSparklineSettings = { highMarkerColor: '#995D81', lowMarkerColor: '#FED766', markersColor: 'black', seriesColor: '#009FB7', showMarkers: true, showHigh: true, showLow: true, minAxisType: 2, maxAxisType: 2, manualMax: 25000, manualMin: 0 }; var lineSparklineFormula = '=LINESPARKLINE("may,june,july,aug,sept,oct", "", "' + JSON.stringify(lineSparklineSetting).replace(/\"/g, '') + '")'; var columnSparklineFormula = '=COLUMNSPARKLINE("may,june,july,aug,sept,oct", "", "' + JSON.stringify(columnSparklineSettings).replace(/\"/g, '') + '")'; var smallDevice = screen.width <= 480; var colWidthSmall = smallDevice ? 125 : '*'; var colWidthLarge = smallDevice ? 125 : '2*';
列の定義を追加します。
var columns = [{ id: 'salesPerson', caption: 'Sales Person', dataField: 'Salesperson', width: colWidthSmall }, { id: 'may', caption: 'May', dataField: 'May', dataType: 'number', format: '$#,##' }, { id: 'june', caption: 'June', dataField: 'June', dataType: 'number', format: '$#,##' }, { id: 'july', caption: 'July', dataField: 'July', dataType: 'number', format: '$#,##' }, { id: 'aug', caption: 'Aug.', dataField: 'Aug', dataType: 'number', format: '$#,##' }, { id: 'sept', caption: 'Sept.', dataField: 'Sept', dataType: 'number', format: '$#,##' }, { id: 'oct', caption: 'Oct.', dataField: 'Oct', dataType: 'number', format: '$#,##' }, { id: 'trend', caption: 'LineSparkline', width: colWidthLarge, dataField: lineSparklineFormula }, { id: 'sales', caption: 'ColumnSparkline', width: colWidthLarge, dataField: columnSparklineFormula, visible: !smallDevice }, { id: 'winloss', caption: 'WinlossSparkline', width: colWidthLarge, asyncRender: renderWinlosssparkline, visible: !smallDevice }, ];
DIVタグのグリッドIDを呼び出し、コードを初期化します。
dataView = new GC.Spread.Views.DataView(document.getElementById('grid1'), data, columns, new GC.Spread.Views.Plugins.GridLayout({ rowHeight: 32 }));