我正在尝试从最小值开始设置绘制列数据的开始,但是无法弄清楚该如何做。也就是说,该轴以-43而不是0开头(请参见屏幕截图)。
我想得到这样的东西:
chart: {
renderTo: 'container',
backgroundColor: 'transparent'
},
tooltip: {
formatter() {
return `${moment(this.x).format('MMM DD')}: ${this.y.toFixed(2)}`;
}
},
plotOptions: {
column: {
pointStart: -50,
dataLabels: {
enabled: true,
format: '{point.y:.2f}'
}
}
},
title: {
text: ''
},
yAxis: {
plotLines: [{
zIndex: 1,
color: '#5c5c5c',
value: 0,
width: 3,
}],
title: {
text: ''
}
},
xAxis: {
gridLineWidth : 1,
labels: {
formatter() {
return moment(this.value).format('MMM DD');
}
}
},
legend: {
enabled: false
},
series: [{
data: [...this.monthData.resultByDays.map(res => [res.date, res.result])],
type: 'column'
}]
我认为,一种好方法是使用columnrange系列而不是基本列。在columnrange中,可以设置起点的范围。
演示:https://jsfiddle.net/BlackLabel/ur6qgnbz/
以及隐藏“ -60”数据标签的代码:
dataLabels: {
enabled: true,
formatter() {
if(this.y === -60) {
return false
} else {
return this.y
}
}
}
API:https://api.highcharts.com/highcharts/plotOptions.columnrange