Question

Je me sers du Dojo tracer pour créer un graphique de colonnes. Je suis très impressionné par jusqu'à présent, mais nous avons décidé que j'ai besoin d'un axe y logarithmique. Ne ressemble pas à cette stratégie est soutenue à ce jour, bien que j'ai vu entrée de blog ce qui implique qu'il a été prévu à un moment donné.

Quelqu'un sait-il qu'il est possible à l'heure actuelle? Sinon, je suis heureux d'essayer d'écrire l'amélioration moi-même, donc si quelqu'un a des conseils sur où commencer, ils seront reçus avec reconnaissance. Je soupçonne que c'est le cas de la mise en œuvre d'un nouveau type d'échelle, bien que je ne l'ai pas passé beaucoup de temps à creuser à travers la source de encore.

Merci, Martin.

Était-ce utile?

La solution

dojox.gfx n'a toujours pas encore l'axe logarithmique.

Mise à jour: Une façon de le faire est de remapper données le long de l'axe logarithmique, et utiliser l'axe linéaire avec des étiquettes personnalisées. Par exemple:

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

// ...

Quelque chose comme ça fera l'affaire. L'autre option consiste à utiliser la fonction d'étiquetage pour générer des étiquettes « logarithmique » automatiquement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top