Я хочу, чтобы создать диаграмму d3.js, которая выглядит как эта дуга: http://jsfiddle.net/g0r9n090/111/Draw слоистой дуги в D3
Диаграмма должна содержать несколько слоев, например: http://jsfiddle.net/rq7s1e6j/
Как создать диаграмму , который имеет этот «промежуток», как дуга, но с несколькими слоями, как эта последняя скрипка?
Код для последней диаграммы:
var dataset = {
apples: [53245, 28479, 19697, 24037, 40245],
oranges: [53245, 28479, 19697, 24037, 40245],
lemons: [53245, 28479, 19697, 24037, 40245],
pears: [53245, 28479, 19697, 24037, 40245],
};
var width = 600,
height = 400,
cwidth = 45;
var color = d3.scale.category20();
var pie = d3.layout.pie()
.sort(null);
var arc = d3.svg.arc();
var svg = d3.select("body").append("svg")
.attr("width", width)
.attr("height", height)
.attr("stroke-width", "2")
.attr("stroke", "#fff")
.append("g")
.attr("transform", "translate(" + width/2 + "," + height/2 + ")");
var gs = svg.selectAll("g").data(d3.values(dataset)).enter().append("g");
gs.selectAll("path").data(function (d) { return pie(d); })
.enter().append("path")
.attr("fill", function (d, i) { return color(i); })
.attr("d", function (d, i, j) {
return arc.innerRadius(cwidth * j).outerRadius(cwidth * (j + 1))(d);
});
Любая помощь, которую могли бы получить меня где-нибудь ближе к своей цели, ценится! :)
Пятно на, спасибо, что уточнили! –
Возможно ли, добавьте .innerRadius() в пирог-объект? Или как я мог бы сделать центр диаграммы пустым? @cyon –
@ JesperBaungårdBruunHansen Я отредактирую свой ответ, чтобы добавить способ сделать центр полым. – cyon