Pergunta

Eu tenho usado o gráfico do dojo para criar um gráfico de colunas. Estou muito impressionado com isso até agora, mas decidi que preciso de um eixo y logarítmico. Não parece que isso é suportado até agora, embora eu tenha visto um entrada no blog implicando que foi planejado em algum momento.

Alguém sabe disso é possível no momento? Caso contrário, fico feliz em tentar escrever o aprimoramento, por isso, se alguém tiver algumas dicas sobre por onde começar, será recebido com gratidão. Suspeito que seja o caso de implementar um novo tipo de escala, embora ainda não tenha passado muito tempo cavando a fonte.

Obrigado, Martin.

Foi útil?

Solução

Dojox.gfx ainda não possui o eixo logarítmico ainda.

Atualizar: Uma maneira de fazer isso é remapear os dados ao longo do eixo logarítmico e usar o eixo linear com etiquetas personalizadas. Por exemplo:

// 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 assim fará o truque. A outra opção é usar a função de rotulagem para gerar rótulos "logarítmicos" automaticamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top