2010-09-15 151 views
15

Tengo Highcharts configurado para mostrar un gráfico con varias categorías de eje x. Todo está funcionando bien, pero me gustaría poder omitir algunas de las categorías de xAxis, por lo que no se muestra todo lo que se muestra. Puede ver un ejemplo de esto trabajando en la sección de informes del Monitor de campañas (captura de pantalla: http://screencast.com/t/Y2FjNzQ4Y).Highcharts: muestra cada otra categoría de eje x

¿Alguna idea de cómo puedo lograr este mismo diseño?

Respuesta

4

Puede establecer el tipo xAxis como 'datetime' y luego establecer pointInterval y PointStart en las opciones de trazado.

ejemplo Código:

var chart; 
$(document).ready(function() { 
    chart = new Highcharts.Chart({ 
     "xAxis": { 
      "type": "datetime" 

     "plotOptions": { 
      "line": { 
       "pointInterval": 86400000, 
       "pointStart": 1282408923000 
      } 
     }, 
    }); 
}); 

Las cifras que aparecen para pointInterval y de inicio se encuentran en millisecionds que se puede generar usando getTime() El intervalo en su caso sería 86400000ms que es un día. La biblioteca muestra los intervalos apropiados en función de su intervalo de datos.

+0

¿Cómo difieren estos pointsInterval y pointStart de aquellos dentro de la opción "Serie"? –

+0

Para ser absolutamente honesto, no he visto los Highcharts durante unos meses, pero si mal no recuerdo, es debido al formato de fecha y hora, y los intervalos para usted, en lugar de utilizar una serie. Espero que ayude. – Gazler

0

aquí es mi solución feo :)

estoy usando matriz como cola. http://javascript.about.com/library/blqueue.htm si completa los datos de puntos en la cola, puede establecer datos para su serie de gráficos.

var myQueue = new Array(); 
var myPoint = [x, y];          myQueue.push(myPoint); 
chart.series[0].setData(myQueue); 

my X axis is not a datetime, it's an integer 
first 
var x = 0; 

valor de x debe ser siempre incrementa cuando se necesita un nuevo punto. http://dl.dropbox.com/u/3482121/picture/highcharts/PM/Screenshot.png

+0

http://jsfiddle.net/sharavsambuu/WAtFK/ aquí está el código de ejemplo – sharavsambuu

4
xAxis: { 
     categories: categoriesname, 
     labels: { 
      style: { 
       color: '#000', 
       font: '9px Trebuchet MS, Verdana, sans-serif' 
      } 
     }, 
     **tickInterval: TickInterval,**// SET THIS 
     tickPixelInterval: 80, 
     tickmarkPlacement: 'on' 
    }, 
39

Parece que el eje x: etiquetas: valor de paso es lo que se debe utilizar para lograr esto:

 xAxis: { 
      categories: ['JAN', 'FEB', 'MAR', 'APR', 'MAY'], 
      labels:{ 
       step: 2 // this will show every second label 
      } 
     }, 

Step Axis Labels

super tarde, pero calculo que esto puede ayudar a alguien fuera.

+0

Esta solución específica funcionaba como un amuleto para un gráfico en el que comenzaba un x eje de fecha y hora en un año impar (en este caso, 1/1/1997) Tratar de ajustar el tickInterval para mostrar cada dos años terminó iniciando el eje en 1996, que no tenía datos en mi gráfico. ¡Gracias por esto! –

Cuestiones relacionadas