2013-05-22 89 views
4

我試圖用gRaphael繪製兩個餅圖,就像這樣:防止排序在gRaphael餅圖

var r = new Raphael(0, 0, '100%', '100%'); 

r.piechart(100,120,80,[60,40]); 
r.piechart(300,120,80,[40,60]); 

這將產生以下畫面:

Mmmmmm, pie

兩個餅圖即使我傳遞給r.piechart的參數的順序不同,也是一樣的。有什麼辦法可以防止這種情況發生,以便其中一個圖表的底部有60%的藍色切片,另一個將保持原樣?

回答

8

Here is a fiddle。我不是一個gRaphael專家,所以有可能是一個更好的辦法。我從

values.sort(function (a, b) { 
    return b.value - a.value; 
}); 

改變餅圖功能(g.pie.js的線99)到

if (opts.sort !== false) { 
    values.sort(function (a, b) { 
     return b.value - a.value; 
    }); 
} 

而且比將您的代碼更改爲:

r.piechart(100,120,80,[60,40], {sort: false}); 
r.piechart(300,120,80,[40,60], {sort: false}); 
+0

可愛,謝謝! – RoyalTS

+0

非常感謝你! – mjwatts

+0

但是,請注意,如果使用MinPercent或MaxSlices,則它們依賴於正確功能的值進行排序。更好的_add_代碼將其恢復爲原始順序: 'if(opts.sort == false){ values.sort(function(a,b){ return a.order-b.order; }) ; }' 緊跟在'others && values.splice ...'開頭的行之後。 – John