Domanda

Sto usando il Dojo creazione di grafici per creare un grafico Colonne. Sono molto impressionato da esso finora, ma ho deciso ho bisogno di un asse Y logaritmico. Non sembra che questo è supportato fino ad ora, anche se ho visto un blog implicando era previsto ad un certo punto.

Qualcuno sa che è possibile in questo momento? Se no, allora sono felice di provare a scrivere la valorizzazione me stesso, quindi se qualcuno ha alcuni suggerimenti su dove cominciare, che sarebbe stato ricevuto con gratitudine. Ho il sospetto che sia caso di implementazione di un nuovo tipo di scala, anche se non ho trascorso molto tempo a scavare attraverso la sorgente ancora.

Grazie, Martin.

È stato utile?

Soluzione

dojox.gfx ancora non ha ancora l'asse logaritmico.

Aggiornamento: Un modo per farlo è quello di rimappare i dati lungo l'asse logaritmico, e utilizzare l'asse lineare con etichette personalizzate. Ad esempio:

// 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);

// ...

Una cosa del genere farà il trucco. L'altra opzione è quella di utilizzare la funzione di etichettatura per generare automaticamente le etichette "logaritmica".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top