2014-02-10 77 views
1

我正在使用JQuery Flot和堆疊插件來創建多個不同來源的堆疊長期收入條形圖。我遇到的問題是,有一個時間點,其中一個來源的收入比整個圖表中的其他任何一個都要大幾個數量級。堆積的條形圖不堪重負一個值

最終的結果是,此值支配圖表,將所有其他條縮小到無法使用的高度。我可以在圖表上設置一個最大高度,但是然後你失去了可視化的突出價值。

有沒有在數據可視化的任何最佳做法來解決這樣的情況?一些flot選項/插件可以幫助嗎?還是一個能以比flot更好的方式處理這種情況的圖書館?

回答

2

我不確定金融情節,但在科學繪圖中,爲了強調數據接近0,經常使用對數縮放軸。與線性縮放軸不同,其中每個等間距刻度代表+N,在對數刻度軸中,每個等距刻度代表增加的數量級。最簡單的情況是指數增加,其中軸線變0.1, 1, 10, 100, 1000, etc...

例如這裏是相同的條形圖具有線性和對數縮放軸:

enter image description here

下面是我用於生成此的海軍報代碼(小提琴here):

$(function() { 

    var series = {data: [[0, 0.1], [1, 1], [2, 10], [3, 100000]], 
        lines: {show: false}, 
        bars: {show: true}} 

    $.plot("#linear", [ series ]); 

    $.plot("#log", [ series ], { 
     yaxis: { 
      min: 0.1, 
      max: 150000, 
      ticks: [[0.1,"0.1"], 1, 10, 100, 1000, 10000], 
      transform: function (v) { 
       return (v == 0) ? Math.log(0.0001) : Math.log(v); 
      }, 
      inverseTransform: function (v) { 
       return Math.exp(v); 
      }    
     } 
    }); 
}); 
+0

啊,這是一個好主意。這可能很難解釋一個對數刻度上的堆疊條形圖,所以如果使用這個,我可能會切換到分組條形。謝謝。 –