2012-08-30 15 views
5

Estoy intentando rotar las fechas en la parte inferior de mi gráfica para que aparezcan verticales frente a horizontales. Estoy usando flot-tickrotor pero parece que no funciona correctamente.rotar Flot Tick etiquetas

xaxis: { 
    rotateTicks: 110, 
    mode: "time", 
    timeformat: "%m/%d", 
    minTickSize: [7, "day"], 
    ticks: cpudatearray 
} 

El resultado final no es el correcto, todo parece complicado. enter image description here

+0

¿Alguna idea sobre una solución para esto? – Blake

Respuesta

9

Es posible que tenga mejor suerte acaba de manejar esto con CSS en lugar de utilizar el tapón en:

#flotPlaceholder div.xAxis div.tickLabel 
{  
    transform: rotate(-90deg); 
    -ms-transform:rotate(-90deg); /* IE 9 */ 
    -moz-transform:rotate(-90deg); /* Firefox */ 
    -webkit-transform:rotate(-90deg); /* Safari and Chrome */ 
    -o-transform:rotate(-90deg); /* Opera */ 
    /*rotation-point:50% 50%;*/ /* CSS3 */ 
    /*rotation:270deg;*/ /* CSS3 */ 
} 

cambiar Obviamente el ángulo a lo que sea que está tratando de lograr. Si desea usar esto para el eje y, simplemente cambie el selector div.xAxis.

El resultado después de la prueba en mi propio gráfico flot: enter image description here

+0

Gracias por las respuestas: los gráficos deben mostrarse en IE8, así que no creo que esto funcione. – Blake

+3

Para versiones anteriores de IE, podría intentar usar 'filter: progid: DXImageTransform.Microsoft.BasicImage (rotation = 3);' (o posiblemente '-ms-filter:'). Ver este [respuesta] (http://stackoverflow.com/questions/9051030/rotating-text-with-css-and-ie) y esto [MS referencia] (http://msdn.microsoft.com/en -us/library/ms532918.aspx) –

+0

Otra opción sería cargar [jqueryrotate] (http://code.google.com/p/jqueryrotate/) y después de que la flot se termine de trazar, puede llamar a '$ (" # flotPlaceholder div.xAxis div.tickLabel "). rotate (270)'. Tenga en cuenta que no he usado este paquete, y su documentación indica que solo la versión 3 más nueva admite la rotación de todos los tipos de elementos. Las versiones anteriores aparentemente solo funcionan con imágenes. Otra opción que encontré fue interesante. –

1

@ respuesta de Brendan parece que podría funcionar bastante bien, sin embargo antes de implementar eso, debería considerar si esto es algo que realmente quiere hacer de una perspectiva de usabilidad.

Si la longitud máxima de texto que está mostrando es de 5 caracteres (de su pregunta, una cadena 'MM DD'), sus gráficos probablemente serían más fáciles de leer si solo marcara cada tres 'ticks' (o sin embargo, muchos tienen sentido para sus datos).

Realicé un ejercicio similar con mis gráficos en una aplicación tipo tablero de instrumentos. Los usuarios insistieron en que necesitaban una etiqueta X para cada resultado, pero dado que el gráfico tenía 96 tics, esto creó bastante texto una vez que los giré 90 grados como lo está intentando hacer. Cuando les mostré una maqueta con una etiqueta X horizontal por cada 6º punto, prefirieron esa opción y eso es lo que optamos por la solución entregada. (Su millaje puede variar ..)

+0

De hecho, estoy de acuerdo con usted en la preferencia por espaciar las etiquetas, como puede ver es el caso de mi trama con etiquetas cada 3 meses (esto está en producción, aunque sin la rotación). Sin embargo, esa elección de diseño depende de @ blake-adams. Quizás él tenga otras razones para querer la rotación. O quizás los usuarios solo necesiten ver la versión girada junto a la versión espaciada para decidir que también les gusta más;) –

+0

De acuerdo. Mi intención no era dar a entender que tu solución era incorrecta (después de todo, responde la pregunta). Solo quería resaltar una consideración de diseño que @ blake-adams quizás no haya pensado (ya que tenía un gráfico muy similar para mostrar). –