Jeffの回答を更新するだけです:
色:
色参照を関数に渡します:r.customAttributes.segment = function (x, y, r, a1, a2, color) {...
データの後にカラー配列変数を追加します。var data = [90, 90, 90, 90], color = ['#ff0000', '#00ff00', '#0000ff', '#ff0000'], ...
最後のループで:
start = 0;
for (i = 0; i < ii; i++) {
var val = 360 / total * data[i];
var col = color[i]; //Add color from array
(function (i, val) {
//Here we pass the color (col)
paths.push(r.path().attr({segment: [200, 200, 1, start, start + val, col], stroke: "#fff"}).click(function () {
...
編集:
an then ( Matt Ballのvar props {
パートに感謝)
r.customAttributes.segment = function (x, y, r, a1, a2, color) {... を次のように変更します。
var flag = (a2 - a1) > 180;
a1 = (a1 % 360) * Math.PI / 180;
a2 = (a2 % 360) * Math.PI / 180;
var props = {
path: [["M", x, y], ["l", r * Math.cos(a1), r * Math.sin(a1)], ["A", r, r, 0, +flag, 1, x + r * Math.cos(a2), y + r * Math.sin(a2)], ["z"]]
};
if (color) {
props.fill = color;
}
return props;