的使用這種可重複使用的圖表爲基礎的數字更改顏色範圍內的D3可重複使用的圓環圖中:http://bl.ocks.org/nnattawat/9368297取決於數據點
我試圖找到一種方法來改變基於數量的顏色範圍設定弧(大小),而不必重寫主甜甜圈()。例如,一個甜甜圈getData大小爲2(顏色爲綠色和灰色),另一個甜甜圈getData大小爲3(現在刪除灰色並將顏色更改爲綠色,紅色和黃色)。
我不能從甜甜圈()中刪除顏色,所以我試圖找到一種方法來將顏色與特定的數據點關聯起來,但是我無法用這個模板弄清楚。
編輯:指定已完成的代碼更改。
我有6個不同的getData功能,大致如下:
var getFirstDonutData = function() {
var size = 2;
var data = [firstData1, firstData2];
var text = "";
d3.select("#data");
return data;
};
var getSecondDonutData = function() {
var size = 3;
var data = [secondData1, secondData2, secondData3];
var text = "";
d3.select("#data");
return data;
};
var getThirdDonutData = function() {
var size = 2;
var data = [thirdData1, thirdData2];
var text = "";
d3.select("#data");
return data;
};
然後將以下的6種不同的:
var twoPointDonut = donut()
.$el(d3.select("#twoPointDonut "))
.data(getFirstDonutData())
.render();
var threePointDonut = donut()
.$el(d3.select("#threePointDonut "))
.data(getSecondDonutData())
.render();
var otherTwoPointDonut = donut()
.$el(d3.select("#otherTwoPointDonut "))
.data(getThirdDonutData())
.render();
謝謝,這是有道理的。我還有其他一些擔憂,並更新了這個問題。非常多,我創建了單獨的getData()來容納單個的甜甜圈,因爲數據來自特定的變量。由於主甜甜圈()主要使用「getData」,因此我無法按照當前的方式創建倍數。我嘗試將數據作爲另一個數組傳遞,但後來我發現甜甜圈無法及時看到它,並且未能加載它。 –
我明白了。我已經添加了對我的答案的更新。 – Travis
就是這樣!謝謝。對不起,如果這是有點超出範圍,但你知道是否有任何缺點,在渲染功能的信息? –