highcharts 列堆叠 Y 轴同步 - 值似乎表示为前一列的增加
highcharts column stacking Y axis sync - value seem to be represented as an increase on that of previous column
我有以下图表(下图)
我对堆叠的理解有误吗? y 轴值范围不应该是 [-12, -1]
吗?
相反,highcharts 似乎在绘制堆栈时添加到类别的前一列的值,
以 -5.3 + (-9.2) + (-12.0) + (-6.7) = -33.2 结束,因此将列绘制到 33.2 y 轴坐标,而不是将所有较小的值堆叠在 -12.0
.
这是我的配置
我的数据按 y
排序(见下面的代码),highcharts 的文档提到
When stacking is enabled, data must be sorted in ascending X order.
{
"chart": {
"styledMode": false,
"backgroundColor": "transparent",
"spacing": [10, 5, 0, 0],
"width": null,
"height": "38%",
"style": { "fontFamily": "inherit" }
},
"plotOptions": {
"area": { "marker": { "enabled": false } },
"spline": { "marker": { "enabled": false } },
"line": { "marker": { "enabled": false } },
"series": { "enableMouseTracking": true },
"column": {
"stacking": "normal",
"dataLabels": { "enabled": true, "inside": true, "format": "{point.y:,.1f}", "style": { "fontWeight": "normal" } }
}
},
"navigation": { "buttonOptions": { "enabled": false } },
"xAxisConfig": {
"xAxisOptions": {
"min": 0.5,
"startOnTick": false,
"endOnTick": false,
"minPadding": 0,
"maxPadding": 0,
"gridLineWidth": 0,
"labels": {
"style": {
"color": "#8095aa",
"lineHeight": "16px",
"textTransform": "uppercase",
"letterSpacing": "1.2px",
"fontSize": "10px",
"fontWeight": "normal"
}
},
"categories": [
"IGA",
"LPD",
"LTK",
"MAN",
"PTE",
"VAL",
"VAM",
"VAS",
"VBA",
"VBS",
"VEB",
"VES",
"VIC",
"VIA",
"VIC",
"VIL",
"VAS",
"VTM"
],
"max": 17
}
},
"yAxisConfig": {
"yAxisOptions": {
"opposite": false,
"gridLineColor": "#8095aa",
"gridLineDashStyle": "Dot",
"title": { "text": null },
"offset": -10,
"startOnTick": false,
"minPadding": 0,
"maxPadding": 0,
"labels": { "style": { "color": "#8095aa", "lineHeight": "16px", "letterSpacing": "0.3px", "fontSize": "12px", "fontWeight": "normal" } },
"tickPixelInterval": 20,
"min": null,
"max": null
}
},
"colors": ["#9bd9a8", "#f9b36c", "#9ea2a5", "#95b3e1", "#cea3a6"],
"series": [
{
"data": [
{ "y": -7.55234464138288, "tooltipLabel": "PTE" },
{ "y": -6.26724628978681, "tooltipLabel": "VAS" },
{ "y": -3.58044975748122, "tooltipLabel": "VAS" },
{ "y": -3.37783607784082, "tooltipLabel": "VBA" },
{ "y": -3.1935940773000002, "tooltipLabel": "VIC" },
{ "y": -0.2846235546, "tooltipLabel": "VIL" },
{ "y": -0.1796231514, "tooltipLabel": "VTM" },
{ "y": -0.0666363456, "tooltipLabel": "MAN" },
{ "y": -0.0464127807, "tooltipLabel": "VES" },
{ "y": -0.0160181769, "tooltipLabel": "VBS" },
{ "y": -0.0086822076, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VEB" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q2 19",
"name": "Q2 19",
"type": "column",
"color": "#9bd9a8",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -6.70349414707873, "tooltipLabel": "PTE" },
{ "y": -5.86808436147698, "tooltipLabel": "VAS" },
{ "y": -4.03754309365603, "tooltipLabel": "VAS" },
{ "y": -2.41595741864367, "tooltipLabel": "VBA" },
{ "y": -2.26943358871165, "tooltipLabel": "VIC" },
{ "y": -0.2018974188, "tooltipLabel": "VIL" },
{ "y": -0.0854778045, "tooltipLabel": "VBS" },
{ "y": -0.0758436822, "tooltipLabel": "VES" },
{ "y": -0.0301922313, "tooltipLabel": "VTM" },
{ "y": -0.0165710193, "tooltipLabel": "MAN" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VEB" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q3 19",
"name": "Q3 19",
"type": "column",
"color": "#f9b36c",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -12.0603270249, "tooltipLabel": "VAS" },
{ "y": -9.16146422264508, "tooltipLabel": "PTE" },
{ "y": -3.48553644219686, "tooltipLabel": "VIC" },
{ "y": -3.32470619551604, "tooltipLabel": "VBA" },
{ "y": -2.8986080112, "tooltipLabel": "VAS" },
{ "y": -0.039319459574637, "tooltipLabel": "VBS" },
{ "y": -0.0281927712, "tooltipLabel": "MAN" },
{ "y": -0.0106122489, "tooltipLabel": "VES" },
{ "y": -0.0095501142, "tooltipLabel": "VAM" },
{ "y": -0.0072576636, "tooltipLabel": "VEB" },
{ "y": -0.0014821356, "tooltipLabel": "VTM" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" },
{ "y": 0, "tooltipLabel": "VIL" }
],
"label": "Q4 19",
"name": "Q4 19",
"type": "column",
"color": "#9ea2a5",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -9.24493828517629, "tooltipLabel": "PTE" },
{ "y": -8.45456974510156, "tooltipLabel": "VAS" },
{ "y": -3.91419326549166, "tooltipLabel": "VAS" },
{ "y": -2.7262006703053, "tooltipLabel": "VBA" },
{ "y": -2.64059928262624, "tooltipLabel": "VIC" },
{ "y": -0.0721207575, "tooltipLabel": "VIL" },
{ "y": -0.027267749714351, "tooltipLabel": "VEB" },
{ "y": -0.0205519149, "tooltipLabel": "LPD" },
{ "y": -0.0057894936, "tooltipLabel": "VBS" },
{ "y": -0.0036789159, "tooltipLabel": "MAN" },
{ "y": -0.0035612511, "tooltipLabel": "VTM" },
{ "y": -0.002792625, "tooltipLabel": "VES" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q1 20",
"name": "Q1 20",
"type": "column",
"color": "#95b3e1",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -7.8038549791618, "tooltipLabel": "PTE" },
{ "y": -3.32988974998627, "tooltipLabel": "VAS" },
{ "y": -1.6977913524, "tooltipLabel": "VAS" },
{ "y": -1.5742172985, "tooltipLabel": "VIC" },
{ "y": -1.21077264323422, "tooltipLabel": "VBA" },
{ "y": -0.1701435747, "tooltipLabel": "VAM" },
{ "y": -0.0734110278, "tooltipLabel": "VIL" },
{ "y": -0.057551043, "tooltipLabel": "VES" },
{ "y": -0.0330108867, "tooltipLabel": "VTM" },
{ "y": -0.022080080685649, "tooltipLabel": "VEB" },
{ "y": -0.0122265, "tooltipLabel": "VBS" },
{ "y": -0.0082685988, "tooltipLabel": "MAN" },
{ "y": -0.0059005716, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q2 20",
"name": "Q2 20",
"type": "column",
"color": "#cea3a6",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
}
]
}
甚至尝试按类别对系列中的数据数组进行排序——如果这就是 highcharts 文档按 X 升序表示的意思
[
{
"y": 0,
"tooltipLabel": "IGA"
},
{
"y": 0,
"tooltipLabel": "LPD"
},
{
"y": 0,
"tooltipLabel": "LTK"
},
{
"y": -0.0666363456,
"tooltipLabel": "MAN"
},
{
"y": -7.55234464138288,
"tooltipLabel": "PTE"
},
{
"y": -0.0086822076,
"tooltipLabel": "VAL"
},
{
"y": 0,
"tooltipLabel": "VAM"
},
{
"y": -6.26724628978681,
"tooltipLabel": "VAS"
},
{
"y": -3.58044975748122,
"tooltipLabel": "VAS"
},
{
"y": -3.37783607784082,
"tooltipLabel": "VBA"
},
{
"y": -0.0160181769,
"tooltipLabel": "VBS"
},
{
"y": 0,
"tooltipLabel": "VEB"
},
{
"y": -0.0464127807,
"tooltipLabel": "VES"
},
{
"y": 0,
"tooltipLabel": "VIA"
},
{
"y": -3.1935940773000002,
"tooltipLabel": "VIC"
},
{
"y": 0,
"tooltipLabel": "VIC"
},
{
"y": -0.2846235546,
"tooltipLabel": "VIL"
},
{
"y": -0.1796231514,
"tooltipLabel": "VTM"
}
]
但这并没有改变结果
instead highcharts seems to add to the value of the previous column for a category when drawing the stack, ending up with -5.3 + (-9.2) + (-12.0) + (-6.7) = -33.2
这正是堆叠的工作原理,您可以在此处找到更多信息:https://www.highcharts.com/docs/advanced-chart-features/stacking-charts
instead of stacking all the smaller values inside -12.0.
如果要实现此目的,则不应使用 stacking
功能,而应将列位置设置为相互重叠。
演示:https://jsfiddle.net/BlackLabel/e9w4r6h8/
plotOptions: {
column: {
pointWidth: 20,
groupPadding: 0.5
}
},
API: https://api.highcharts.com/highcharts/series.column.groupPadding
我有以下图表(下图)
我对堆叠的理解有误吗? y 轴值范围不应该是 [-12, -1]
吗?
相反,highcharts 似乎在绘制堆栈时添加到类别的前一列的值,
以 -5.3 + (-9.2) + (-12.0) + (-6.7) = -33.2 结束,因此将列绘制到 33.2 y 轴坐标,而不是将所有较小的值堆叠在 -12.0
.
这是我的配置
我的数据按 y
排序(见下面的代码),highcharts 的文档提到
When stacking is enabled, data must be sorted in ascending X order.
{
"chart": {
"styledMode": false,
"backgroundColor": "transparent",
"spacing": [10, 5, 0, 0],
"width": null,
"height": "38%",
"style": { "fontFamily": "inherit" }
},
"plotOptions": {
"area": { "marker": { "enabled": false } },
"spline": { "marker": { "enabled": false } },
"line": { "marker": { "enabled": false } },
"series": { "enableMouseTracking": true },
"column": {
"stacking": "normal",
"dataLabels": { "enabled": true, "inside": true, "format": "{point.y:,.1f}", "style": { "fontWeight": "normal" } }
}
},
"navigation": { "buttonOptions": { "enabled": false } },
"xAxisConfig": {
"xAxisOptions": {
"min": 0.5,
"startOnTick": false,
"endOnTick": false,
"minPadding": 0,
"maxPadding": 0,
"gridLineWidth": 0,
"labels": {
"style": {
"color": "#8095aa",
"lineHeight": "16px",
"textTransform": "uppercase",
"letterSpacing": "1.2px",
"fontSize": "10px",
"fontWeight": "normal"
}
},
"categories": [
"IGA",
"LPD",
"LTK",
"MAN",
"PTE",
"VAL",
"VAM",
"VAS",
"VBA",
"VBS",
"VEB",
"VES",
"VIC",
"VIA",
"VIC",
"VIL",
"VAS",
"VTM"
],
"max": 17
}
},
"yAxisConfig": {
"yAxisOptions": {
"opposite": false,
"gridLineColor": "#8095aa",
"gridLineDashStyle": "Dot",
"title": { "text": null },
"offset": -10,
"startOnTick": false,
"minPadding": 0,
"maxPadding": 0,
"labels": { "style": { "color": "#8095aa", "lineHeight": "16px", "letterSpacing": "0.3px", "fontSize": "12px", "fontWeight": "normal" } },
"tickPixelInterval": 20,
"min": null,
"max": null
}
},
"colors": ["#9bd9a8", "#f9b36c", "#9ea2a5", "#95b3e1", "#cea3a6"],
"series": [
{
"data": [
{ "y": -7.55234464138288, "tooltipLabel": "PTE" },
{ "y": -6.26724628978681, "tooltipLabel": "VAS" },
{ "y": -3.58044975748122, "tooltipLabel": "VAS" },
{ "y": -3.37783607784082, "tooltipLabel": "VBA" },
{ "y": -3.1935940773000002, "tooltipLabel": "VIC" },
{ "y": -0.2846235546, "tooltipLabel": "VIL" },
{ "y": -0.1796231514, "tooltipLabel": "VTM" },
{ "y": -0.0666363456, "tooltipLabel": "MAN" },
{ "y": -0.0464127807, "tooltipLabel": "VES" },
{ "y": -0.0160181769, "tooltipLabel": "VBS" },
{ "y": -0.0086822076, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VEB" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q2 19",
"name": "Q2 19",
"type": "column",
"color": "#9bd9a8",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -6.70349414707873, "tooltipLabel": "PTE" },
{ "y": -5.86808436147698, "tooltipLabel": "VAS" },
{ "y": -4.03754309365603, "tooltipLabel": "VAS" },
{ "y": -2.41595741864367, "tooltipLabel": "VBA" },
{ "y": -2.26943358871165, "tooltipLabel": "VIC" },
{ "y": -0.2018974188, "tooltipLabel": "VIL" },
{ "y": -0.0854778045, "tooltipLabel": "VBS" },
{ "y": -0.0758436822, "tooltipLabel": "VES" },
{ "y": -0.0301922313, "tooltipLabel": "VTM" },
{ "y": -0.0165710193, "tooltipLabel": "MAN" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VEB" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q3 19",
"name": "Q3 19",
"type": "column",
"color": "#f9b36c",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -12.0603270249, "tooltipLabel": "VAS" },
{ "y": -9.16146422264508, "tooltipLabel": "PTE" },
{ "y": -3.48553644219686, "tooltipLabel": "VIC" },
{ "y": -3.32470619551604, "tooltipLabel": "VBA" },
{ "y": -2.8986080112, "tooltipLabel": "VAS" },
{ "y": -0.039319459574637, "tooltipLabel": "VBS" },
{ "y": -0.0281927712, "tooltipLabel": "MAN" },
{ "y": -0.0106122489, "tooltipLabel": "VES" },
{ "y": -0.0095501142, "tooltipLabel": "VAM" },
{ "y": -0.0072576636, "tooltipLabel": "VEB" },
{ "y": -0.0014821356, "tooltipLabel": "VTM" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" },
{ "y": 0, "tooltipLabel": "VIL" }
],
"label": "Q4 19",
"name": "Q4 19",
"type": "column",
"color": "#9ea2a5",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -9.24493828517629, "tooltipLabel": "PTE" },
{ "y": -8.45456974510156, "tooltipLabel": "VAS" },
{ "y": -3.91419326549166, "tooltipLabel": "VAS" },
{ "y": -2.7262006703053, "tooltipLabel": "VBA" },
{ "y": -2.64059928262624, "tooltipLabel": "VIC" },
{ "y": -0.0721207575, "tooltipLabel": "VIL" },
{ "y": -0.027267749714351, "tooltipLabel": "VEB" },
{ "y": -0.0205519149, "tooltipLabel": "LPD" },
{ "y": -0.0057894936, "tooltipLabel": "VBS" },
{ "y": -0.0036789159, "tooltipLabel": "MAN" },
{ "y": -0.0035612511, "tooltipLabel": "VTM" },
{ "y": -0.002792625, "tooltipLabel": "VES" },
{ "y": 0, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VAM" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q1 20",
"name": "Q1 20",
"type": "column",
"color": "#95b3e1",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
},
{
"data": [
{ "y": -7.8038549791618, "tooltipLabel": "PTE" },
{ "y": -3.32988974998627, "tooltipLabel": "VAS" },
{ "y": -1.6977913524, "tooltipLabel": "VAS" },
{ "y": -1.5742172985, "tooltipLabel": "VIC" },
{ "y": -1.21077264323422, "tooltipLabel": "VBA" },
{ "y": -0.1701435747, "tooltipLabel": "VAM" },
{ "y": -0.0734110278, "tooltipLabel": "VIL" },
{ "y": -0.057551043, "tooltipLabel": "VES" },
{ "y": -0.0330108867, "tooltipLabel": "VTM" },
{ "y": -0.022080080685649, "tooltipLabel": "VEB" },
{ "y": -0.0122265, "tooltipLabel": "VBS" },
{ "y": -0.0082685988, "tooltipLabel": "MAN" },
{ "y": -0.0059005716, "tooltipLabel": "IGA" },
{ "y": 0, "tooltipLabel": "LPD" },
{ "y": 0, "tooltipLabel": "LTK" },
{ "y": 0, "tooltipLabel": "VAL" },
{ "y": 0, "tooltipLabel": "VIA" },
{ "y": 0, "tooltipLabel": "VIC" }
],
"label": "Q2 20",
"name": "Q2 20",
"type": "column",
"color": "#cea3a6",
"dashStyle": "Solid",
"lineType": "Solid",
"marker": {},
"connectNulls": true
}
]
}
甚至尝试按类别对系列中的数据数组进行排序——如果这就是 highcharts 文档按 X 升序表示的意思
[
{
"y": 0,
"tooltipLabel": "IGA"
},
{
"y": 0,
"tooltipLabel": "LPD"
},
{
"y": 0,
"tooltipLabel": "LTK"
},
{
"y": -0.0666363456,
"tooltipLabel": "MAN"
},
{
"y": -7.55234464138288,
"tooltipLabel": "PTE"
},
{
"y": -0.0086822076,
"tooltipLabel": "VAL"
},
{
"y": 0,
"tooltipLabel": "VAM"
},
{
"y": -6.26724628978681,
"tooltipLabel": "VAS"
},
{
"y": -3.58044975748122,
"tooltipLabel": "VAS"
},
{
"y": -3.37783607784082,
"tooltipLabel": "VBA"
},
{
"y": -0.0160181769,
"tooltipLabel": "VBS"
},
{
"y": 0,
"tooltipLabel": "VEB"
},
{
"y": -0.0464127807,
"tooltipLabel": "VES"
},
{
"y": 0,
"tooltipLabel": "VIA"
},
{
"y": -3.1935940773000002,
"tooltipLabel": "VIC"
},
{
"y": 0,
"tooltipLabel": "VIC"
},
{
"y": -0.2846235546,
"tooltipLabel": "VIL"
},
{
"y": -0.1796231514,
"tooltipLabel": "VTM"
}
]
但这并没有改变结果
instead highcharts seems to add to the value of the previous column for a category when drawing the stack, ending up with -5.3 + (-9.2) + (-12.0) + (-6.7) = -33.2
这正是堆叠的工作原理,您可以在此处找到更多信息:https://www.highcharts.com/docs/advanced-chart-features/stacking-charts
instead of stacking all the smaller values inside -12.0.
如果要实现此目的,则不应使用 stacking
功能,而应将列位置设置为相互重叠。
演示:https://jsfiddle.net/BlackLabel/e9w4r6h8/
plotOptions: {
column: {
pointWidth: 20,
groupPadding: 0.5
}
},
API: https://api.highcharts.com/highcharts/series.column.groupPadding