在我的HighChart线图,所述系列数据是从我的Ruby on Rails的应用程序动态进给。 有时一系列值都为零或更低这是HighCharts一个问题,它抛出以下异常:
Highcharts Error #10
Can't plot zero or subzero values on a logarithmic axis
因此,作为一个变通办法,我处理我的红宝石阵列有条件而无显着的正数代替少值零,如下图所示.eg 0.00001:
oil_vol_array = d_array[1].map { |e| (e < 0.0001) ? 0.0001 : e.round(3) }
这防止被抛出的异常,但在显示显示了启动在0.0001图表如果初始值是零(可以理解的,因为我要求它)。 更理想的显示将在零开始的曲线,但HighChart不喜欢它:(
有没有一种方式,可以做到这一点?
你有没有用试过标签格式 ?
var chart = new Highcharts.Chart({
yAxis: {
labels: {
formatter: function() {
if(this.value === 0.00001){
return 0;
} else {
return this.value;
}
}
}
}
});
当庞大的数字打交道,最好是使用0以外的值的标准标签格式,否则您的标签会显示如下:10亿......要改变这种替代“别人的语句来调用原来的标签格式化方法下面:
var chart = new Highcharts.Chart({
yAxis: {
labels: {
formatter: function() {
if(this.value === 0.00001){
return 0;
} else {
return Highcharts.Axis.prototype.defaultLabelFormatter.call(this);
}
}
}
}
});
文章来源: Highcharts - best way to handle and display zero (or negative) values in a line chart series with logarithmic Y axis