2017-04-21 38 views
2

我正在評估從JFreeChart轉換爲dygraphs,但我正在尋找一種方法在x軸上具有1-log(x)值;主要蜱(等距離)將是90%,99%,99.9%,99.99%等等。是有可能提供變換函數要麼dygraphs是否可以定製x軸縮放

一個)從數據到位置在圖表

b)中可視化改造(I可以產生歸一化的形式的數據,但隨後的所有標籤應轉換)

搜索logscale表明沒有一個地方設置線性/對數轉換,所以我覺得對a)持懷疑態度。 (注意JFreeChart自然不提供這種開箱即用的功能,但是由於我對Java更加熟練,所以能夠一起破解它)。

回答

1

您可以爲x軸編寫自定義ticker以使dygraph顯示您喜歡的任何內容。文檔參考this explanatory comment中的實現。請參閱this answer獲取一些靈感。

g = new Dygraph(div, data, { 
    axes: { 
    x: { 
     ticker(min, max, pixels, opts, dygraph, vals) { 
     return [ 
      { v: 0.9, label:'90%' }, 
      { v: 0.99, label: '99%' }, 
      { v: 0.999, label: '99.9%' } 
     ]; 
     } 
    } 
    } 
}); 

至於渲染對數尺度,最好的辦法是將它們傳遞給dygraphs,然後(使用valueFormatter)將它們轉換回顯示之前改變你的x值。