2012-04-16 19 views
6

En mis gráficos de líneas de HighChart, los datos de la serie se alimentan dinámicamente desde mi aplicación Ruby on Rails. A veces los valores de la serie son ceros o menos, que es un problema para Highcharts y se lanza la siguiente excepción:Highcharts: la mejor manera de manejar y mostrar valores cero (o negativos) en una serie de gráficos de líneas con el eje Y logarítmico

Highcharts Error #10 
Can't plot zero or subzero values on a logarithmic axis 

Así como una solución temporal, que procesar mi gama de rubí para reemplazar condicionalmente un cero de menos valor con una número positivo insignificante, .eg 0,00001, como se muestra a continuación:

oil_vol_array = d_array[1].map { |e| (e < 0.0001) ? 0.0001 : e.round(3) } 

Esto evita que la excepción de ser lanzada, pero la pantalla muestra la gráfica a partir de 0,0001 si el valor de partida es cero (es comprensible, ya que pregunté a). Una pantalla más deseable sería comenzar el gráfico en cero, pero HighChart no le gusta :(

¿Hay alguna manera de que esto se puede lograr?

Respuesta

9

¿Ha intentado utilizar un label formatter?

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

Gracias. No lo sabía Este es mi segundo día con HighCharts :) – Bharat

1

Cuando se trata de números enormes, es mejor usar el formateador de etiquetas estándar para valores distintos de 0, de lo contrario sus etiquetas se mostrarán así: 1000000000 ... Para cambiar esto, reemplace la instrucción 'else' por la llamada al método original del formateador de etiquetas a continuación:

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