2016-12-29 237 views
0

我正在根據this example創建雷達圖表。但是我的數據沒有以%表示。它在幾分鐘內給出。問題是,規模將自動轉換爲%,而當數據由100如何修改雷達圖表的比例從百分比到數值

乘以我找不到代碼的地方這是我的數據集:

 [ 
     {axis:"AAA",value:2.56}, 
     {axis:"BBB",value:1.27}, 
     {axis:"CCC",value:2.01}, 
     {axis:"DDD",value:2.71} 
     ],[ 
     {axis:"AAA",value:2.28}, 
     {axis:"BBB",value:1.05}, 
     {axis:"CCC",value:1.81}, 
     {axis:"DDD",value:2.30} 
     ] 
    ]; 

回答

1

的數據不乘以100,而是被格式化爲RadarChart.js的百分比:

var Format = d3.format('%'); 

格式在此應用網格:

.text(Format((j+1)*cfg.maxValue/cfg.levels)); 
鼠標懸停

在這裏:

.text(Format(d.value)) 

而且,最值(包括maxValue)坐落在的script.js:

var mycfg = { 
    w: w, 
    h: h, 
    maxValue: 0.6, 
    levels: 6, 
    ExtraWidthX: 300 
} 

顯示非百分比數據,你可以重新定義數字格式,說通過沒有指定任何東西:

var Format = d3.format(""); 

如果你對數字格式不感興趣,你可以完全刪除對它的引用。您可以簡單地使用d.value而不是Format(d.value)。當然,你也不得不爲了最大值而虛擬一些東西。

在決定如何格式化或不格式化數字之後,您仍然需要重置maxValue以處理數據集。


請注意,如果您的座標軸爲分鐘,則d3.format可能不是格式化值的最適合方式。 D3.time.format可能會更好。無論是或者你可以創建一個自定義函數來輸出分鐘和秒,如果需要的話。