@operato/scene-chartjs 7.0.8 → 7.0.10
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +19 -0
- package/dist/config-converter.js +6 -1
- package/dist/config-converter.js.map +1 -1
- package/dist/ox-chart.js +14 -0
- package/dist/ox-chart.js.map +1 -1
- package/helps/scene/component/chartjs.ja.md +364 -0
- package/helps/scene/component/chartjs.ko.md +211 -183
- package/helps/scene/component/chartjs.md +269 -242
- package/helps/scene/component/chartjs.ms.md +365 -0
- package/helps/scene/component/chartjs.zh.md +243 -212
- package/package.json +2 -2
- package/schema.graphql +175 -40
- package/src/config-converter.ts +8 -1
- package/src/ox-chart.ts +14 -0
- package/src/scene-chart.d.ts +2 -54
- package/translations/en.json +4 -1
- package/translations/ja.json +4 -1
- package/translations/ko.json +4 -1
- package/translations/ms.json +4 -1
- package/translations/zh.json +4 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,25 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [7.0.10](https://github.com/things-scene/operato-scene/compare/v7.0.9...v7.0.10) (2024-07-14)
|
7
|
+
|
8
|
+
|
9
|
+
### :bug: Bug Fix
|
10
|
+
|
11
|
+
* support data-label-offset and data-label-rotation for chart modeling ([9632b7c](https://github.com/things-scene/operato-scene/commit/9632b7c8853e31827d5098f4a6e700d23c86e51f))
|
12
|
+
* support offset and rotation for series label ([5c19607](https://github.com/things-scene/operato-scene/commit/5c196076f6f62f8128a667e7232a3d59989a6512))
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
## [7.0.9](https://github.com/things-scene/operato-scene/compare/v7.0.8...v7.0.9) (2024-07-13)
|
17
|
+
|
18
|
+
|
19
|
+
### :bug: Bug Fix
|
20
|
+
|
21
|
+
* chart translations ([f15920d](https://github.com/things-scene/operato-scene/commit/f15920d8f58fb64fef3bd0b5a5b0e235954534d1))
|
22
|
+
|
23
|
+
|
24
|
+
|
6
25
|
## [7.0.8](https://github.com/things-scene/operato-scene/compare/v7.0.7...v7.0.8) (2024-07-13)
|
7
26
|
|
8
27
|
|
package/dist/config-converter.js
CHANGED
@@ -280,6 +280,9 @@ function _setSeriesConfigures(series, chart) {
|
|
280
280
|
var type = series.type || chart.type;
|
281
281
|
var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`;
|
282
282
|
var color = series.color ? series.color : series.backgroundColor;
|
283
|
+
var dataLabelAnchor = series.dataLabelAnchor || 'center';
|
284
|
+
var dataLabelOffset = series.dataLabelOffset || 0;
|
285
|
+
var dataLabelRotation = series.dataLabelRotation || 0;
|
283
286
|
switch (type) {
|
284
287
|
case 'bar':
|
285
288
|
case 'horizontalBar':
|
@@ -299,6 +302,9 @@ function _setSeriesConfigures(series, chart) {
|
|
299
302
|
break;
|
300
303
|
}
|
301
304
|
series.stack = stackGroup;
|
305
|
+
series.dataLabelAnchor = dataLabelAnchor;
|
306
|
+
series.dataLabelOffset = dataLabelOffset;
|
307
|
+
series.dataLabelRotation = dataLabelRotation;
|
302
308
|
}
|
303
309
|
function _appendTickCallback(ticks) {
|
304
310
|
if (!ticks) {
|
@@ -330,7 +336,6 @@ function _setTooltipCallback(tooltips) {
|
|
330
336
|
var value = (_b = (_a = data.datasets) === null || _a === void 0 ? void 0 : _a[tooltipItem.datasetIndex || 0].data) === null || _b === void 0 ? void 0 : _b[tooltipItem.index || 0];
|
331
337
|
var datasetLabel = (_c = data.datasets) === null || _c === void 0 ? void 0 : _c[tooltipItem.datasetIndex || 0].label;
|
332
338
|
var label = datasetLabel || ((_d = data.labels) === null || _d === void 0 ? void 0 : _d[tooltipItem.index || 0]);
|
333
|
-
var toNumValue = Number(value);
|
334
339
|
var format = ((_e = data.datasets) === null || _e === void 0 ? void 0 : _e[tooltipItem.datasetIndex || 0].valueFormat) || '';
|
335
340
|
var prefix = ((_f = data.datasets) === null || _f === void 0 ? void 0 : _f[tooltipItem.datasetIndex || 0].valuePrefix) || '';
|
336
341
|
var suffix = ((_g = data.datasets) === null || _g === void 0 ? void 0 : _g[tooltipItem.datasetIndex || 0].valueSuffix) || '';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n var toNumValue = Number(value)\n\n var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n\n return `${label}: ${prefix + stringValue + suffix}`\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"config-converter.js","sourceRoot":"","sources":["../src/config-converter.ts"],"names":[],"mappings":"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","sourcesContent":["import { TinyColor } from '@ctrl/tinycolor'\nimport { format as formatText } from '@operato/utils/format.js'\n\nexport function convertConfigure(chart: SceneChart.ChartConfig) {\n if (!chart) return\n\n var data = chart.data || {}\n var datasets = data.datasets || []\n var options = chart.options || {}\n var scales = options.scales || {}\n var xAxes: Array<SceneChart.ChartXAxe>\n var yAxes: Array<SceneChart.ChartYAxe>\n var scale\n var legend = options.legend || {}\n var tooltips = options.tooltip === false ? undefined : (options.tooltips = options.tooltips || {})\n var multiAxis = options.multiAxis\n var stacked = false\n var yStacked = [false, false]\n var fontSize = Number(options.defaultFontSize)\n var fontFamily = options.defaultFontFamily\n var fontColor = options.defaultFontColor\n var theme = options.theme\n\n // backward compatible\n _configureBackwardsCompatible(chart.type, options)\n\n // setup series configure\n for (let i in datasets) {\n let series = datasets[i]\n\n if (options.stacked && !series.stack) {\n series.stack = 'A'\n }\n\n /*\n * TODO from chartjs 2.9, categoryPercentage, barPercentage properties move to dataset.\n * so need to move related properties - categorySpacing, barSpacing should be moved to series.\n */\n if (chart.type == 'bar') {\n let categorySpacing = (scales.xAxes && scales.xAxes[0].categorySpacing) || 0\n let barSpacing = (scales.xAxes && scales.xAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n } else if (chart.type == 'horizontalBar') {\n let categorySpacing = (scales.yAxes && scales.yAxes[0].categorySpacing) || 0\n let barSpacing = (scales.yAxes && scales.yAxes[0].barSpacing) || 0\n\n series.categoryPercentage = 1 - categorySpacing || 1\n series.barPercentage = 1 - barSpacing || 0.8\n }\n\n _setSeriesConfigures(series, chart)\n\n if (!multiAxis) {\n if (series.yAxisID == 'right') series.yAxisID = 'left'\n }\n }\n\n delete options.stacked\n\n var leftSeries = datasets.filter(d => d.yAxisID == 'left')\n var rightSeries = datasets.filter(d => d.yAxisID == 'right')\n\n leftSeries.forEach(s => {\n var filtered = leftSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[0] = true\n return\n }\n })\n\n rightSeries.forEach(s => {\n var filtered = rightSeries.filter(ss => s.stack == ss.stack)\n if (filtered.length > 1) {\n yStacked[1] = true\n return\n }\n })\n\n stacked = yStacked[0] || yStacked[1]\n\n // setup options\n // 1. setup scales\n switch (chart.type) {\n case 'line':\n case 'bar':\n case 'horizontalBar':\n xAxes = scales.xAxes || []\n yAxes = scales.yAxes || []\n\n if (chart.type == 'horizontalBar') {\n xAxes = scales.yAxes || []\n yAxes = scales.xAxes || []\n }\n\n // 1-1. setup xAxes\n for (let i in xAxes) {\n let axis = xAxes[i]\n _setStacked(axis, stacked)\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setScalesTickRotation(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n axis.gridLines!.display = options.xGridLine\n }\n\n // 1-2. setup yAxes\n for (let i in yAxes) {\n let axis = yAxes[i]\n\n //@ts-ignore\n if (i == 1) {\n _setMultiAxis(axis, multiAxis)\n }\n _setStacked(axis, yStacked[i])\n _setScalesFont(axis, {\n fontSize,\n fontFamily\n })\n _setScalesAutoMinMax(axis)\n _setAxisTitle(axis)\n _setScalesTheme(axis, theme, fontColor)\n _appendTickCallback(axis.ticks)\n\n //@ts-ignore\n if (i == 0) axis.gridLines.display = options.yGridLine\n\n //@ts-ignore\n if (i == 1) axis.gridLines.display = options.y2ndGridLine\n }\n\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n scale = options.scale || {}\n _setScalesFont(scale, {\n fontSize,\n fontFamily\n })\n break\n }\n\n // 2. setup legend\n _setLegendFont(legend, {\n fontSize,\n fontFamily\n })\n legend.labels && (legend.labels.boxWidth = 15)\n _setLegendTheme(legend, theme, fontColor)\n\n // 3. setup tooltips\n options.tooltip &&\n _setTooltipFont(tooltips!, {\n fontSize,\n fontFamily\n })\n options.tooltip && _setTooltipCallback(tooltips!)\n}\n\nfunction _configureBackwardsCompatible(type: string, options: SceneChart.ChartOptions) {\n switch (type) {\n case 'horizontalBar':\n if (!options.scales) options.scales = {}\n break\n case 'radar':\n case 'polarArea':\n if (options.defaultFontColor) {\n options.scale!.ticks!.fontColor = options.defaultFontColor\n if (options.scale.pointLabels) {\n options.scale.pointLabels.fontColor = options.defaultFontColor\n } else {\n options.scale.pointLabels = { fontColor: options.defaultFontColor }\n }\n }\n options.scale!.ticks!.backdropColor = options.fillStyle ? options.fillStyle : '#00ff0000'\n break\n case 'line':\n case 'bar':\n if (!options.scales) options.scales = {}\n if (!options.scales.yAxes) options.scales.yAxes = []\n\n if (options.scales.yAxes.length === 1) {\n let yAxes = options.scales.yAxes\n yAxes.push({\n position: 'right',\n id: 'right',\n display: options.multiAxis || false,\n gridLines: {\n display: (yAxes[0] && yAxes[0].gridLines && yAxes[0].gridLines.display) || false\n },\n ticks: {\n beginAtZero: false,\n callback: function (value: any, index: number, values: any[]) {\n var returnValue = value\n if (typeof returnValue == 'number') {\n returnValue = returnValue.toLocaleString()\n }\n\n return returnValue\n }\n }\n })\n }\n break\n case 'pie':\n case 'doughnut':\n break\n default:\n if (!options.scale) options.scale = {}\n\n break\n }\n}\n\nfunction _setStacked(axis: SceneChart.ChartXAxe, stacked: boolean) {\n axis.stacked = stacked\n}\n\nfunction _setMultiAxis(axis: SceneChart.ChartXAxe, multiAxis: boolean) {\n axis.display = multiAxis\n}\n\nfunction _setAxisTitle(axis: SceneChart.ChartXAxe) {\n if (!axis.scaleLabel) axis.scaleLabel = {}\n axis.scaleLabel.labelString = axis.axisTitle\n axis.scaleLabel.display = axis.axisTitle ? true : false\n}\n\nfunction _setScalesFont(\n axis: SceneChart.ChartXAxe | SceneChart.RadialLinearScale,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontSize = fontSize\n\n if (fontFamily) {\n axis.ticks.fontFamily = fontFamily\n }\n\n ;(axis as SceneChart.RadialLinearScale).pointLabels = {\n fontSize,\n fontFamily\n }\n}\n\nfunction _setScalesAutoMinMax(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n\n let autoMin = axis.ticks.autoMin\n let autoMax = axis.ticks.autoMax\n\n if (autoMin === true) {\n delete axis.ticks.min\n }\n if (autoMax === true) {\n delete axis.ticks.max\n }\n}\n\nfunction _setScalesTickRotation(axis: SceneChart.ChartXAxe) {\n axis.ticks = axis.ticks ? axis.ticks : {}\n // axis.ticks.maxRotation = 0\n}\n\nfunction _setScalesTheme(axis: SceneChart.ChartXAxe, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n axis.gridLines = axis.gridLines ? axis.gridLines : {}\n if (axis.gridLines) {\n axis.gridLines.zeroLineColor = baseColor.clone().setAlpha(0.5).toString()\n axis.gridLines.color = baseColor.clone().setAlpha(0.1).toString()\n }\n\n axis.ticks = axis.ticks ? axis.ticks : {}\n axis.ticks.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _setLegendFont(\n legend: SceneChart.ChartLegendOptions,\n { fontFamily, fontSize }: { fontFamily: string; fontSize: number }\n) {\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontSize = fontSize\n if (fontFamily) legend.labels.fontFamily = fontFamily\n}\n\nfunction _setLegendTheme(legend: SceneChart.ChartLegendOptions, theme: SceneChart.Theme, fontColor: string) {\n var baseColor = _getBaseColorFromTheme(theme)\n\n legend.labels = legend.labels ? legend.labels : {}\n legend.labels.fontColor = fontColor ? fontColor : baseColor.clone().setAlpha(0.5).toString()\n}\n\nfunction _getBaseColorFromTheme(theme: SceneChart.Theme) {\n let darkColor = '#000'\n let lightColor = '#fff'\n\n var baseColor\n\n switch (theme) {\n case 'light':\n baseColor = lightColor\n break\n case 'dark':\n default:\n baseColor = darkColor\n break\n }\n\n baseColor = new TinyColor(baseColor)\n\n return baseColor\n}\n\nfunction _setSeriesConfigures(series: SceneChart.ChartDataSets, chart: SceneChart.ChartConfig) {\n var type = series.type || chart.type\n var stackGroup = `${type} ${series.yAxisID} ${series.stack || series.dataKey}`\n var color = series.color ? series.color : series.backgroundColor\n\n var dataLabelAnchor = series.dataLabelAnchor || 'center'\n var dataLabelOffset = series.dataLabelOffset || 0\n var dataLabelRotation = series.dataLabelRotation || 0\n\n switch (type) {\n case 'bar':\n case 'horizontalBar':\n series.borderColor = series.backgroundColor = color\n break\n\n case 'line':\n case 'radar':\n color = series.color ? series.color : series.borderColor\n series.pointBackgroundColor = series.pointBorderColor = series.borderColor = series.backgroundColor = color\n series.pointBorderWidth = (series.borderWidth as number) * 0.5\n series.pointHoverRadius = series.pointRadius\n if (series.fill == undefined) series.fill = false\n break\n\n default:\n series.borderColor = series.backgroundColor = color\n break\n }\n\n series.stack = stackGroup\n\n series.dataLabelAnchor = dataLabelAnchor\n series.dataLabelOffset = dataLabelOffset\n series.dataLabelRotation = dataLabelRotation\n}\n\nfunction _appendTickCallback(ticks: SceneChart.TickOptions | undefined) {\n if (!ticks) {\n return\n }\n\n ticks.callback = function (value, index, values) {\n var returnValue\n if (!Number.isNaN(Number(value))) {\n returnValue = Number(value).toLocaleString()\n } else {\n returnValue = value\n }\n\n if (returnValue) return returnValue\n }\n}\n\nfunction _setTooltipFont(\n tooltips: SceneChart.ChartTooltipOptions,\n { fontSize, fontFamily }: { fontSize: number; fontFamily: string }\n) {\n tooltips.titleFontSize = tooltips.bodyFontSize = tooltips.footerFontSize = fontSize\n if (fontFamily) tooltips.titleFontFamily = tooltips.bodyFontFamily = tooltips.footerFontFamily = fontFamily\n}\n\nfunction _setTooltipCallback(tooltips: SceneChart.ChartTooltipOptions) {\n tooltips.callbacks = tooltips.callbacks || {}\n\n tooltips.intersect = false\n tooltips.mode = 'index'\n\n tooltips.callbacks.label = function (tooltipItem: SceneChart.ChartTooltipItem, data: SceneChart.ChartData) {\n var value: any = data.datasets?.[tooltipItem.datasetIndex || 0].data?.[tooltipItem.index || 0]\n var datasetLabel = data.datasets?.[tooltipItem.datasetIndex || 0].label\n var label = datasetLabel || data.labels?.[tooltipItem.index || 0]\n\n var format = data.datasets?.[tooltipItem.datasetIndex || 0].valueFormat || ''\n var prefix = data.datasets?.[tooltipItem.datasetIndex || 0].valuePrefix || ''\n var suffix = data.datasets?.[tooltipItem.datasetIndex || 0].valueSuffix || ''\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n\n return `${label}: ${prefix + stringValue + suffix}`\n }\n}\n"]}
|
package/dist/ox-chart.js
CHANGED
@@ -91,6 +91,20 @@ let OxChart = class OxChart extends LitElement {
|
|
91
91
|
//@ts-ignore
|
92
92
|
return context.dataset.dataLabelAnchor || 'center';
|
93
93
|
},
|
94
|
+
offset: function (context) {
|
95
|
+
//@ts-ignore
|
96
|
+
return context.dataset.dataLabelOffset || 0;
|
97
|
+
},
|
98
|
+
//@ts-ignore
|
99
|
+
align: function (context) {
|
100
|
+
//@ts-ignore
|
101
|
+
return context.dataset.dataLabelAnchor || 'center';
|
102
|
+
},
|
103
|
+
//@ts-ignore
|
104
|
+
rotation: function (context) {
|
105
|
+
//@ts-ignore
|
106
|
+
return context.dataset.dataLabelRotation || 0;
|
107
|
+
},
|
94
108
|
color: function (context) {
|
95
109
|
var _a;
|
96
110
|
//@ts-ignore
|
package/dist/ox-chart.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"ox-chart.js","sourceRoot":"","sources":["../src/ox-chart.ts"],"names":[],"mappings":"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","sourcesContent":["import 'chartjs-plugin-datalabels'\nimport 'chartjs-plugin-style'\n\nimport { LitElement, PropertyValues, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\n\nimport { Chart } from 'chart.js'\nimport { format as formatText } from '@operato/utils/format.js'\nimport DataBinderPlugin from './plugins/chartjs-plugin-data-binder'\nimport { convertConfigure } from './config-converter'\n\nChart.plugins.register(DataBinderPlugin)\n\n@customElement('ox-chart')\nexport class OxChart extends LitElement {\n @property({ type: Number }) width!: number\n @property({ type: Number }) height!: number\n @property({ type: Object }) options!: SceneChart.ChartConfig\n @property({ type: Object }) data!: SceneChart.ChartData\n\n private _initialized?: boolean\n private _chart?: SceneChart\n\n @query('canvas') _canvas!: HTMLCanvasElement\n\n firstUpdated() {\n this.initChart()\n }\n\n render() {\n return html` <canvas></canvas> `\n }\n\n updated(changes: PropertyValues<this>) {\n if (changes.has('width') || changes.has('height')) {\n this.updateChartSize()\n }\n\n if (changes.has('options')) {\n this.updateChartConfig()\n }\n\n if (changes.has('data')) {\n this._chart!.data.rawData = this.data\n this._chart!.update()\n }\n }\n\n initChart() {\n const { data, options, type } = this.options\n this.options.options.tooltip = this.options.options.tooltip ?? true\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart = new Chart(this._canvas, {\n type,\n data,\n options\n }) as SceneChart\n\n this.updateChartSize()\n\n this._initialized = true\n }\n\n updateChartSize() {\n const width = Math.floor(this.width)\n const height = Math.floor(this.height)\n\n this._canvas.style.width = `${width}px`\n this._canvas.style.height = `${height}px`\n\n const _ = () => {\n if (this._canvas.offsetWidth == 0 || this._canvas.offsetHeight == 0) {\n requestAnimationFrame(_)\n } else {\n /*\n 주의 : chart.resize() 내에서 pixel ratio를 감안해서, canvas 의 width, height를 설정하기때문에,\n 별도 처리가 필요하지 않다.\n */\n this._chart!.resize()\n }\n }\n\n requestAnimationFrame(_)\n }\n\n updateChartConfig() {\n if (!this._chart) return\n\n const { data, options, type } = this.options\n options!.maintainAspectRatio = false\n\n this.attachPluginOptions(options)\n convertConfigure(this.options as SceneChart.ChartConfig)\n\n this._chart.type = type\n this._chart.data = data\n this._chart.options = options\n this._chart.data.rawData = this.data\n this._chart.update()\n }\n\n attachPluginOptions(options: SceneChart.ChartOptions) {\n if (!options.plugins) {\n options.plugins = {}\n }\n\n this.attachDatalabelPluginOptions(options.plugins)\n }\n\n attachDatalabelPluginOptions(pluginOptions: SceneChart.ChartPluginsOptions) {\n pluginOptions.datalabels = {\n ...pluginOptions.datalabels,\n display: function (context) {\n //@ts-ignore\n return !!context.dataset.displayValue\n },\n anchor: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n offset: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelOffset || 0\n },\n //@ts-ignore\n align: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelAnchor || 'center'\n },\n //@ts-ignore\n rotation: function (context) {\n //@ts-ignore\n return context.dataset.dataLabelRotation || 0\n },\n color: function (context) {\n //@ts-ignore\n return context.dataset?.defaultFontColor || '#000'\n },\n font: function (context) {\n return {\n //@ts-ignore\n size: context.dataset?.defaultFontSize,\n //@ts-ignore\n family: context.chart.options?.defaultFontFamily\n }\n },\n clamp: true,\n formatter: function (value, context) {\n //@ts-ignore\n var format = context.dataset.valueFormat || ''\n //@ts-ignore\n var prefix = context.dataset.valuePrefix || ''\n //@ts-ignore\n var suffix = context.dataset.valueSuffix || ''\n if (value == undefined) return value\n\n var stringValue = format ? formatText(format, Number(value)) : Number(value).toLocaleString()\n return prefix + stringValue + suffix\n }\n }\n }\n}\n"]}
|
@@ -0,0 +1,364 @@
|
|
1
|
+
# **Chart**
|
2
|
+
|
3
|
+
## 1. 共通
|
4
|
+
|
5
|
+
### 1.1. 共通属性
|
6
|
+
|
7
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
8
|
+
- 凡例 - チャートの凡例を表示。
|
9
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
10
|
+
- 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
|
11
|
+
|
12
|
+
### 1.2. X 軸
|
13
|
+
|
14
|
+
- データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
|
15
|
+
![Chart-bar-theme][chart-bar-01]
|
16
|
+
- タイトル - X 軸の希望するタイトル(ラベル)を入力
|
17
|
+
- グリッドライン - 垂直方向のグリッドライン表示の有無
|
18
|
+
![X軸グリッド][chart-bar-08]
|
19
|
+
- 目盛り表示 - X 軸の目盛り表示の有無
|
20
|
+
|
21
|
+
### 1.3. Y 軸
|
22
|
+
|
23
|
+
- タイトル - Y 軸の希望するタイトル(ラベル)を入力
|
24
|
+
- 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
|
25
|
+
- 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
|
26
|
+
- 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
|
27
|
+
- 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
|
28
|
+
- ステップ - 目盛り間隔を設定
|
29
|
+
- グリッドライン - 水平方向のグリッドライン表示の有無
|
30
|
+
![Y軸グリッド][chart-bar-12]
|
31
|
+
- 目盛り表示 - Y 軸の目盛り表示の有無
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
## 2. Mix Chart(垂直バー/ラインチャート)
|
36
|
+
|
37
|
+
- データをバーとラインの形状を混ぜて表現するチャート。 **(ミックスチャートの属性は、バーとラインチャートと同じです。)**
|
38
|
+
- データをバーまたはラインの形で表現したり、バーとラインをミックスして表現可能。複数のシリーズ(フィールド)がある場合、並列バーまたは積み上げバーで表現可能。
|
39
|
+
![chart-mix-チャートタイプ][chart-mix-02]
|
40
|
+
|
41
|
+
[chart-mix-02]: ../images/chart-mix-02.png
|
42
|
+
|
43
|
+
### 2.1. シリーズ
|
44
|
+
|
45
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
46
|
+
- **共通**
|
47
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
|
48
|
+
![Data Refer][chart-bar-01]
|
49
|
+
- タイプ - シリーズをライン(line)チャートで表現するか、バー(bar)チャートで表現するかを定義する。
|
50
|
+
- ラベル - 凡例名
|
51
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
52
|
+
- 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
|
53
|
+
![積み上げグループ][chart-bar-02]
|
54
|
+
- 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
|
55
|
+
![対象軸][chart-bar-03]
|
56
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
57
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
58
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
59
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
60
|
+
値表示が選択されると、以下の項目が表示される。
|
61
|
+
- フォント色 - シリーズラベルの色を設定
|
62
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
63
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
64
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
65
|
+
- 回転 - シリーズラベルの回転角度
|
66
|
+
- **タイプが line の場合**
|
67
|
+
- 緊張度 - 直線を使用したグラフ(angled)、滑らかな線を使用したグラフ(smooth)
|
68
|
+
- 境界部分の幅 - ラインの太さを設定
|
69
|
+
- ポイントの形状 - ラインの各頂点のポイントの形状を定義
|
70
|
+
- ポイントのサイズ - ラインの各頂点のポイントのサイズを定義
|
71
|
+
- 塗りつぶし - 共通属性の色を使用して、データを表現する図形を塗りつぶす。
|
72
|
+
|
73
|
+
### 2.2. X 軸
|
74
|
+
|
75
|
+
- 一般 - [共通属性](#1.2.-X軸)で定義された内容と同じ
|
76
|
+
- バー間隔 - バーとバーの間隔で、バーのサイズに影響を与える。
|
77
|
+
- 目盛り間隔 - 目盛り間の間隔で、バーのサイズに影響を与える。
|
78
|
+
|
79
|
+
### 2.3. Y 軸
|
80
|
+
|
81
|
+
- [共通属性](#1.3.-Y軸)で定義された内容と同じ
|
82
|
+
|
83
|
+
### 2.4. 補助 Y 軸(二軸選択時に表示)
|
84
|
+
|
85
|
+
- 設定属性は Y 軸の設定方法と同じ。
|
86
|
+
|
87
|
+
[chart-bar-01]: ../images/chart-bar-01.png
|
88
|
+
[chart-bar-02]: ../images/chart-bar-02.png
|
89
|
+
[chart-bar-03]: ../images/chart-bar-03.png
|
90
|
+
[chart-bar-08]: ../images/chart-bar-08.png
|
91
|
+
[chart-bar-12]: ../images/chart-bar-12.png
|
92
|
+
|
93
|
+
---
|
94
|
+
|
95
|
+
## 3. 水平バー チャート
|
96
|
+
|
97
|
+
データを水平バーの形で表現するチャート。複数のフィールドがある場合、並列バーまたは積み上げバーで表現可能。
|
98
|
+
|
99
|
+
### 3.1. 共通属性
|
100
|
+
|
101
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
102
|
+
- 凡例 - チャートの凡例を表示。
|
103
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
104
|
+
- 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
|
105
|
+
|
106
|
+
### 3.2. シリーズ
|
107
|
+
|
108
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
109
|
+
- **共通**
|
110
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
|
111
|
+
- ラベル - 凡例名
|
112
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
113
|
+
- 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
|
114
|
+
- 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
|
115
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
116
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
117
|
+
- 接尾辞 - 値が表示されるとき(マ
|
118
|
+
|
119
|
+
ウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
120
|
+
|
121
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
122
|
+
値表示が選択されると、以下の項目が表示される。
|
123
|
+
- フォント色 - シリーズラベルの色を設定
|
124
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
125
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
126
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
127
|
+
- 回転 - シリーズラベルの回転角度
|
128
|
+
|
129
|
+
### 3.3. X 軸
|
130
|
+
|
131
|
+
- データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
|
132
|
+
- タイトル - X 軸の希望するタイトル(ラベル)を入力
|
133
|
+
- グリッドライン - 垂直方向のグリッドライン表示の有無
|
134
|
+
- 目盛り表示 - X 軸の目盛り表示の有無
|
135
|
+
|
136
|
+
### 3.4. Y 軸
|
137
|
+
|
138
|
+
- タイトル - Y 軸の希望するタイトル(ラベル)を入力
|
139
|
+
- 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
|
140
|
+
- 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
|
141
|
+
- 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
|
142
|
+
- 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
|
143
|
+
- ステップ - 目盛り間隔を設定
|
144
|
+
- グリッドライン - 水平方向のグリッドライン表示の有無
|
145
|
+
- 目盛り表示 - Y 軸の目盛り表示の有無
|
146
|
+
|
147
|
+
[chart-horizontal-bar-01]: ../images/chart-horizontal-bar-01.png
|
148
|
+
|
149
|
+
---
|
150
|
+
|
151
|
+
## 4. ラインチャート
|
152
|
+
|
153
|
+
データをラインの形で表現するチャート。(重複する属性はバー チャートを参照)
|
154
|
+
|
155
|
+
### 4.1. 属性
|
156
|
+
|
157
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
158
|
+
- 凡例 - チャートの凡例を表示。
|
159
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
160
|
+
- 二軸 - Y 軸を左右 2 軸で表示するかどうか。二軸を選択した場合、補助 Y 軸とそのオプションが表示される。
|
161
|
+
|
162
|
+
### 4.2. シリーズ
|
163
|
+
|
164
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
165
|
+
- **共通**
|
166
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
|
167
|
+
![Data Refer][chart-line-01]
|
168
|
+
- 緊張度 - 直線を使用したグラフ(angled)、滑らかな線を使用したグラフ(smooth)
|
169
|
+
- 境界部分の幅 - ラインの太さを設定
|
170
|
+
- ラベル - 凡例名
|
171
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
172
|
+
- ポイントの形状 - ラインの各頂点のポイントの形状を定義
|
173
|
+
- ポイントのサイズ - ラインの各頂点のポイントのサイズを定義
|
174
|
+
- 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
|
175
|
+
- 塗りつぶし - 共通属性の色を使用して、データを表現する図形を塗りつぶす。
|
176
|
+
- 対象軸 - 二軸を適用する場合、対象軸の設定フィールドが表示される。対象軸はそのシリーズが参照する軸(軸の目盛り)を指す。
|
177
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
178
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
179
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
180
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
181
|
+
値表示が選択されると、以下の項目が表示される。
|
182
|
+
- フォント色 - シリーズラベルの色を設定
|
183
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
184
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
185
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
186
|
+
- 回転 - シリーズラベルの回転角度
|
187
|
+
|
188
|
+
### 4.3. X 軸
|
189
|
+
|
190
|
+
- データ参照 - チャートが表示するデータのフィールド名。X 軸に表示するデータのフィールド名を入力する。以下のようなデータを表示する場合、'Date'となる。
|
191
|
+
- タイトル - X 軸の希望するタイトル(ラベル)を入力
|
192
|
+
- グリッドライン - 垂直方向のグリッドライン表示の有無
|
193
|
+
- 目盛り表示 - X 軸の目盛り表示の有無
|
194
|
+
|
195
|
+
### 4.4. Y 軸
|
196
|
+
|
197
|
+
- タイトル - Y 軸の希望するタイトル(ラベル)を入力
|
198
|
+
- 最小値自動 - 最小値を自動選択する場合、自動的に最小値とステップを適用して目盛りを計算
|
199
|
+
- 最小値 - 最小値自動選択を解除した場合、目盛りの最小値を設定可能。
|
200
|
+
- 最大値自動 - 最大値を自動選択する場合、自動的に最大値とステップを適用して目盛りを計算
|
201
|
+
- 最大値 - 最大値自動選択を解除した場合、目盛りの最大値を設定可能。
|
202
|
+
- ステップ - 目盛り間隔を設定
|
203
|
+
- グリッドライン - 水平方向のグリッドライン表示の有無
|
204
|
+
- 目盛り表示 - Y 軸の目盛り表示の有無
|
205
|
+
|
206
|
+
[chart-line-01]: ../images/chart-line-01.png
|
207
|
+
|
208
|
+
---
|
209
|
+
|
210
|
+
## 5. レーダーチャート
|
211
|
+
|
212
|
+
データをレーダー形状で表現するチャート。円形チャートのデータを複数のラインで表現。
|
213
|
+
|
214
|
+
### 5.1. 共通属性
|
215
|
+
|
216
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
217
|
+
- 凡例 - チャートの凡例を表示。
|
218
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
219
|
+
|
220
|
+
### 5.2. シリーズ
|
221
|
+
|
222
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
223
|
+
- **共通**
|
224
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'と 'Bad'となる。
|
225
|
+
![Data Refer][chart-radar-01]
|
226
|
+
- ラベル - 凡例名
|
227
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
228
|
+
- 積み上げグループ - 同じ積み上げグループに含まれるシリーズの値を積み上げてグラフに表現する。
|
229
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
230
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
231
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞
|
232
|
+
|
233
|
+
: 円 => 結果: 100 円)
|
234
|
+
|
235
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
236
|
+
値表示が選択されると、以下の項目が表示される。
|
237
|
+
- フォント色 - シリーズラベルの色を設定
|
238
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
239
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
240
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
241
|
+
- 回転 - シリーズラベルの回転角度
|
242
|
+
|
243
|
+
### 5.3. 軸
|
244
|
+
|
245
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
|
246
|
+
![Data Refer][chart-radar-01]
|
247
|
+
|
248
|
+
[chart-radar-01]: ../images/chart-radar-01.png
|
249
|
+
|
250
|
+
---
|
251
|
+
|
252
|
+
## 6. ポーラーチャート
|
253
|
+
|
254
|
+
データを極座標の形で表現するチャート。
|
255
|
+
|
256
|
+
### 6.1. 共通属性
|
257
|
+
|
258
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
259
|
+
- 凡例 - チャートの凡例を表示。
|
260
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
261
|
+
|
262
|
+
### 6.2. シリーズ
|
263
|
+
|
264
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
265
|
+
- **共通**
|
266
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
|
267
|
+
![Data Refer][chart-polar-01]
|
268
|
+
- ラベル - 凡例名
|
269
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
270
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
271
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
272
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
273
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
274
|
+
値表示が選択されると、以下の項目が表示される。
|
275
|
+
- フォント色 - シリーズラベルの色を設定
|
276
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
277
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
278
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
279
|
+
- 回転 - シリーズラベルの回転角度
|
280
|
+
|
281
|
+
### 6.3. 軸
|
282
|
+
|
283
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'hobby'となる。
|
284
|
+
![Data Refer][chart-polar-01]
|
285
|
+
|
286
|
+
[chart-polar-01]: ../images/chart-polar-01.png
|
287
|
+
|
288
|
+
---
|
289
|
+
|
290
|
+
## 7. パイチャート
|
291
|
+
|
292
|
+
データを円形で表現するチャート。
|
293
|
+
|
294
|
+
### 7.1. 共通属性
|
295
|
+
|
296
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
297
|
+
- 凡例 - チャートの凡例を表示。
|
298
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
299
|
+
|
300
|
+
### 7.2. シリーズ
|
301
|
+
|
302
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
303
|
+
- **共通**
|
304
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
|
305
|
+
![Data Refer][chart-pie-01]
|
306
|
+
- ラベル - 凡例名
|
307
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
308
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
309
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
310
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
311
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
312
|
+
値表示が選択されると、以下の項目が表示される。
|
313
|
+
- フォント色 - シリーズラベルの色を設定
|
314
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
315
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
316
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
317
|
+
- 回転 - シリーズラベルの回転角度
|
318
|
+
|
319
|
+
### 7.3. 軸
|
320
|
+
|
321
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
|
322
|
+
![Data Refer][chart-pie-01]
|
323
|
+
|
324
|
+
[chart-pie-01]: ../images/chart-pie-01.png
|
325
|
+
|
326
|
+
---
|
327
|
+
|
328
|
+
## 8. ドーナツチャート
|
329
|
+
|
330
|
+
![コンポーネント-Chart-doughnut][chart-doughnut-01]
|
331
|
+
|
332
|
+
データをドーナツの形で表現するチャート。
|
333
|
+
|
334
|
+
### 8.1. 共通属性
|
335
|
+
|
336
|
+
- テーマ - チャートのテーマを変更。'light'と'dark'の 2 つをサポート
|
337
|
+
- 凡例 - チャートの凡例を表示。
|
338
|
+
- 位置 - 上(top)、下(bottom)、左(left)、右(right)の 4 方向に配置可能。
|
339
|
+
|
340
|
+
### 8.2. シリーズ
|
341
|
+
|
342
|
+
- "+"ボタンを使用して、複数のシリーズをデータに追加可能。
|
343
|
+
- **共通**
|
344
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、シリーズの Data-Key は 'Good'となる。
|
345
|
+
![Data Refer][chart-doughnut-01]
|
346
|
+
- ラベル - 凡例名
|
347
|
+
- 色 - チャートに表現されるシリーズの色を指定する。
|
348
|
+
- 値形式 - 値が表示されるときの数値形式を指定可能。
|
349
|
+
- 接頭辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接頭辞として適用する文字(例: data: 100, 接頭辞: $ => 結果: $100)
|
350
|
+
- 接尾辞 - 値が表示されるとき(マウスオーバー、値表示など)、値の接尾辞として適用する文字(例: data: 100, 接尾辞: 円 => 結果: 100 円)
|
351
|
+
- 値表示 - そのシリーズのデータを画面に表示するかどうかを決定する。
|
352
|
+
値表示が選択されると、以下の項目が表示される。
|
353
|
+
- フォント色 - シリーズラベルの色を設定
|
354
|
+
- サイズ - シリーズラベルのフォントサイズを設定
|
355
|
+
- 位置 - シリーズラベルのフォント位置を設定
|
356
|
+
- オフセット - シリーズラベルの相対位置(位置に対する相対位置を意味する)
|
357
|
+
- 回転 - シリーズラベルの回転角度
|
358
|
+
|
359
|
+
### 8.3. 軸
|
360
|
+
|
361
|
+
- データ参照 - 各シリーズが Y 軸に表現するデータのフィールド名を定義する。以下のようなデータを表示する場合、参照データは 'line'となる。
|
362
|
+
![Data Refer][chart-doughnut-01]
|
363
|
+
|
364
|
+
[chart-doughnut-01]: ../images/chart-doughnut-01.png
|