Dojo对数轴标度

时间:2010-01-12 08:23:55

标签: dojo dojox.charting

我一直在使用Dojo图表来创建Columns图表。到目前为止,我对它印象非常深刻,但我决定需要一个对数y轴。到目前为止看起来不支持这种情况,尽管我已经看到blog entry暗示它在某个时候有计划。

有人知道现在有可能吗?如果没有,那么我很高兴尝试自己编写增强功能,所以如果有人有从哪里开始的提示,他们将非常感激地收到。我怀疑这是实现新的Scale类型的情况,尽管我还没有花太多时间来挖掘源代码。

谢谢, 马丁。

1 个答案:

答案 0 :(得分:3)

dojox.gfx仍然没有对数轴。

更新:一种方法是沿对数轴重新映射数据,并使用带有自定义标签的线性轴。例如:

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

// ...

这样的事情可以解决问题。另一种选择是使用标签功能自动生成“对数”标签。