javascript - setdata - Cómo hacer highcharts por defecto a 0 para datos faltantes
setdata highcharts (4)
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.
Una forma es preprocesar los datos, reemplazando null
con 0
:
var withNulls = [null, 12, 23, 45, 3.44, null, 0];
var noNulls = withNulls.map(function (item) {
return (item === null) ? 0 : item;
});
Ejemplo guardado en jsfiddle: http://jsfiddle.net/7mhMP/
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.
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);
}
Tiene que completar los datos perdidos como 0. Debido a que Highchart no coincide con el intervalo xAxis.
Si tiene una serie de tiempo en un intervalo de 1 minuto , debe establecer todos los datos de minutos faltantes en 0; Si tiene una serie temporal en un intervalo de 1 día , debe establecer todos los datos de días faltantes en 0.