Pregunta

He estado usando el Dojo de gráficos para crear un gráfico de columnas. Estoy muy impresionado por él hasta ahora, pero he decidido que necesito un eje y logarítmica. No parece que esto está apoyado hasta ahora, a pesar de que he visto un entrada de blog implicando que fue planeado en algún momento.

¿Alguien sabe que es posible en este momento? Si no es así, entonces estoy feliz de intentar escribir la mejora de mí mismo, así que si alguien tiene algunos consejos sobre dónde empezar, serían recibidos con agradecimiento. Sospecho que es el caso de la implementación de un nuevo tipo de escala, aunque no he dedicado mucho tiempo a excavar a través de la fuente todavía.

Gracias, Martin.

¿Fue útil?

Solución

dojox.gfx todavía no tiene el eje logarítmico todavía.

Actualización: Una forma de hacerlo es volver a asignar los datos a lo largo del eje logarítmico, y use el eje lineal con etiquetas personalizadas. Por ejemplo:

// we will transform our 'x' to a decadic logarithmic scale

var LOG10 = Math.log(10);

var data = [...]; // my data of {x, y}
var transformedData = dojo.map(data, function(value){
  return {
    x: Math.log(value.x) / LOG10,
    y: value.y // 'y' is unchanged
  };
});

// ...

// add the axis and the data
chart.addAxis("x", {
  natural: true,
  includeZero: true,
  // our logarithmic labels
  labels: [
    {value: 0, text: "1"},
    {value: 1, text: "10"},
    {value: 2, text: "100"},
    {value: 3, text: "1000"},
    {value: 4, text: "10^4"},
    {value: 5, text: "10^5"},
    {value: 6, text: "10^6"},
    {value: 7, text: "10^7"},
    {value: 8, text: "10^8"},
    {value: 9, text: "10^9"}
  ]
});
chart.addSeries("my data", transformedData);

// ...

Algo así como que va a hacer el truco. La otra opción es utilizar la función de etiquetado para generar etiquetas "logarítmica" automáticamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top