【问题标题】:Dojo Logarithmic Axis ScaleDojo 对数轴刻度
【发布时间】:2010-01-12 08:23:55
【问题描述】:

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

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

谢谢, 马丁。

【问题讨论】:

    标签: dojo dojox.charting


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多