我遇到了 highcharts 的问题,我有许多由 JSON 调用生成的不同图表。
对于这些图表中的大多数,我需要将最小 y 轴值设置为 0,但是在某些情况下需要显示负值。只有在数据中没有负值的情况下,我才能告诉 highcharts 的最小 y 轴值为 0,这甚至可能吗?
谢谢
我遇到了 highcharts 的问题,我有许多由 JSON 调用生成的不同图表。
对于这些图表中的大多数,我需要将最小 y 轴值设置为 0,但是在某些情况下需要显示负值。只有在数据中没有负值的情况下,我才能告诉 highcharts 的最小 y 轴值为 0,这甚至可能吗?
谢谢
您正在寻找的选项被调用softMin
并在5.0.1版本中引入。文档将其描述如下:
轴的软最小值。如果系列数据最小值大于此值,则轴将保持在此最小值,但如果系列数据最小值较低,则轴将弯曲以显示所有数据。
yAxis: {
softMin: 0
}
您可以添加到您的 y 轴:
yAxis: {
title: {
text: 'Title of the y-axis'
},
min: 0 // this sets minimum values of y to 0
},
var setMin = function () {
var chart = this,
ex = chart.yAxis[0].getExtremes();
// Sets the min value for the chart
var minVal = 0;
if (ex.dataMin < 0) {
minVal = ex.dataMin;
}
//set the min and return the values
chart.yAxis[0].setExtremes(minVal, null, true, false);
}
然后在你的图表中,你这样称呼它:
$('#container').highcharts({
chart: {
events: {
load: setMin
}
},
});
您可以设置“地板”,这定义了最小值的最小可能值。添加负值时,它们将不可见!(http://api.highcharts.com/highcharts/yAxis.floor)
yAxis: {
floor: 0
}
我知道这个问题很久以前就被问过了,当时这个属性并不存在。但是我只是遇到了这个问题,我认为其他人会很高兴不必搜索。
您可以准备自己的检查是否为负的函数,然后设置适当的刻度。要实现这一点,您应该使用 tickPositioner http://api.highcharts.com/highcharts#yAxis.tickPositioner