2012-05-01 44 views
42

tengo una serie de tiempo en un intervalo de 1 minuto. Quisiera mostrar que en un gráfico con los puntos que faltan como 0.¿Cómo hacer por defecto Highcharts a 0 para los datos faltantes

que he encontrado xAxis.ordinal y vuelta que fuera que muestra la serie de tiempo adecuadamente espaciadas. El problema es que dibuja líneas entre los puntos directamente sin ir a 0 para los datos faltantes.

+3

Wraithan - ¿alguna vez resolver esto? – bugfixr

+3

@Wraithan ¿Has encontrado una manera de establecer los puntos faltantes como 0? – Anagio

+1

+1 a las preguntas anteriores.Necesito saber esto también – Denis

Respuesta

4

Una forma es mediante pre-procesamiento de los datos, en sustitución de 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 guarda en jsFiddle: http://jsfiddle.net/7mhMP/

+13

Esto no responde la pregunta, esto simplemente evita el problema. –

+0

El ejemplo no es una serie temporal en X, no es un valor de fecha y hora, sino una escala personalizada con cualquier nombre, por lo tanto, funciona. El problema surge cuando faltan pares de fecha y valor, por lo que las series no son continuas en la escala de fecha y hora y la línea del gráfico desaparece. – Zon

5

thorougly He buscado la API reference of HighCharts, pero no lo hacen oferta esa opción. Lo que ofrece es la opción de desactivar la conexión de puntos cuando null de datos es en el medio (única línea y gráficos de área):

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

Este es el valor predeterminado de acuerdo con la API, así que no estoy seguro por qué sus datos se conectan con los valores null en el medio. Tal vez han cambiado los valores predeterminados últimamente?

Example of HighChart with missing data

Siento que esto es una buena representación de los datos, ya que el impago null a 0 parece engañoso.

+2

La pregunta requiere un reemplazo 0: sin interrupciones, sin conexión nula con valores promediados en línea directa de un punto a otro. El valor faltante debe interpretarse como 0. Esto es cuando queremos decir que no se observaron occaciones, no es que hayamos omitido la observación y no conocemos el valor. Sabemos que el valor es 0. Muy popular en las estadísticas de las bases de datos. – Zon

+0

El OP realmente dice que le gustaría reemplazar la información que falta con 0. Él no sabe que es 0. Esa es una gran diferencia. –

+1

Highs-forums también les resulta difícil de entender. En mi opinión, "me gustaría mostrar eso en un gráfico con puntos faltantes como 0" significa que en mi tarea los puntos que faltan deben interpretarse como 0. Lo quiero 0, porque sé que debería ser cero si está ausente. En Highs, la única suposición permitida es no-data-then-nulls, lo que se necesita con urgencia es la suposición de no-data-then-zeroes. – Zon

0

que tienen el mismo problema y lo que entiendo es que usted debe ajustar su estructura de datos en la base de datos como VARCHAR y establecer el valor predeterminado para anular de manera en la que no tiene datos que llega a ser nulo. Entonces acepta valores nulos y Highchart no muestra y conecta las áreas faltantes con los valores null.
Además usted tiene que recibir datos como NULL y no cambian a ''.
ver 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] 
    }] 

}); 

here es el violín con dos de gráfico diferente usando null y ''

ACTUALIZACIÓN:
Si está utilizando Parseint para empujar los datos debe recordar que parseINT(NULL) da que NAN por lo que para este error intenta empujar manualmente NULL con algo como esto:

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

Usted hava para llenar los datos perdidos como 0. Debido highchart no konw intervalo ejeX.

Si usted tiene una serie de tiempo en un intervalo de 1 minuto , se debe configurar todos los desaparecidos minutos datos a 0; Si usted tiene una serie de tiempo a un intervalo de 1días, se debe configurar todos los días que faltan datos a 0.

Cuestiones relacionadas