3

我一直在使用 Dojo 图表来创建柱形图。到目前为止,我对它印象深刻,但我决定我需要一个对数 y 轴。到目前为止似乎不支持此功能,尽管我看到一个博客条目暗示它是在某个时候计划的。

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

谢谢,马丁。

4

1 回答 1

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

// ...

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

于 2010-01-12T16:40:38.233 回答