2010-01-12 32 views
3

我一直在使用Dojo圖表創建一個Columns圖表。到目前爲止我對它印象深刻,但已經決定我需要一個對數y軸。看起來這不是支持到目前爲止,雖然我看到一個blog entry暗示它在某個時間點計劃。Dojo對數軸比例

有人知道它現在有可能嗎?如果不是,那麼我很樂意嘗試自己寫這個增強版,所以如果任何人有關於從哪裏開始的一些技巧,他們會很感激地收到。我懷疑這是實施新的縮放類型的情況,儘管我還沒有花很多時間來挖掘源代碼。

謝謝, 馬丁。

回答

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

// ... 

類似這樣的事情可以做到這一點。另一種選擇是使用標籤功能自動生成「對數」標籤。