[javascript] Cómo hacer highcharts por defecto a 0 para datos faltantes


Answers

He buscado exhaustivamente la referencia API de HighCharts , pero no ofrecen esa opción. Lo que sí ofrecen es la opción de deshabilitar la conexión de puntos cuando null datos null están en medio (solo gráficos de línea y área):

var chart = new Highcharts.Chart({
    plotOptions: {
        line: {
            connectNulls: false
        }
    }
});

Esta es la configuración predeterminada de acuerdo con la API, por lo que no estoy seguro de por qué sus datos se conectan con valores null en el medio. Tal vez han cambiado los valores predeterminados últimamente?

Siento que esta es una buena representación de tus datos, porque el null predeterminado en 0 parece engañoso.

Question

Tengo una serie de tiempo en un intervalo de 1 minuto. Me gustaría mostrar eso en un cuadro con puntos faltantes como 0.

He encontrado xAxis.ordinal y lo apagué, lo que muestra las series de tiempo correctamente espaciadas. El problema es que dibuja líneas entre los puntos directamente sin ir a 0 para los datos faltantes.




Tengo el mismo problema y lo que entiendo es que debe establecer su estructura de datos en la base de datos como VARCHAR y establecer el valor predeterminado en nulo para que cuando no tenga datos se convierta en NULL. Luego acepta valores nulos y Highchart no muestra y conecta las áreas faltantes con valores null .
Además, debe recibir los datos como NULL y no los cambie a '' .
vea este ejemplo de trabajo:

var chart = new Highcharts.Chart({

    chart: {
        defaultSeriesType: 'spline', // use line or spline
        renderTo: 'container1'
    },

    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    series: [{
        data: [9, 4,null, 2, 1, 0, 6, 5, 4, 1, 6, 4]
    }]

});

aquí está el violín con dos tablas diferentes usando null y ''

ACTUALIZAR:
Si está utilizando parseINT para enviar datos, debe recordar que parseINT(NULL) le proporciona NAN por lo que para este error intente presionar NULL manualmente con algo como esto:

var val = parseInt(rows[i]);
if (isNaN(val))
{
  val = null;
  result.push(val);
}



Related