Highcharts - 最好的方式来处理,并在线路图表系列具有对数Y轴上显示零(或负)值(Hig

2019-06-23 16:20发布

在我的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不喜欢它:(

有没有一种方式,可以做到这一点?

Answer 1:

你有没有用试过标签格式 ?

var chart = new Highcharts.Chart({ 
    yAxis: {        
        labels: {
            formatter: function() {
                if(this.value === 0.00001){
                    return 0;
                } else {
                    return this.value;
                }
            }
        }
    }
});


Answer 2:

当庞大的数字打交道,最好是使用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