
我想用d3.js创建一个像上面这样的甜甜圈,但是我不能做一个。我可以用d3.js做一个正常的甜甜圈。
请有人知道如何用d3.js制作这个甜甜圈吗?
发布于 2015-12-02 09:12:07
既然你确认了会有4组数据
4弧具有不同的内外半径。
var biggestarc = d3.svg.arc()
.outerRadius(radius - 80)
.innerRadius(radius - 10);
var bigarc = d3.svg.arc()
.outerRadius(radius - 30)
.innerRadius(radius - 60);
var smallarc = d3.svg.arc()
.outerRadius(radius - 40)
.innerRadius(radius - 50);
var biggerarc = d3.svg.arc()
.outerRadius(radius - 20)
.innerRadius(radius - 70);数据将采用这种格式。
data = [{
"label": "Biggest",
"percent": 25 //percent to be shown for Biggest arc
}, {
"label": "Bigger",
"percent": 10 //percent to be shown for Bigger arc
}, {
"label": "Big",
"percent": 65 //percent to be shown for Big arc
}, {
"label": "Small",
"percent": 30 //percent to be shown for Small arc
}]按照标签选择路径弧:
g.append("path")
.attr("d", function (d) {
console.log(d)
if (d.data.label == "Biggest") {
return biggestarc(d);
} else if (d.data.label == "Bigger") {
return biggerarc(d);
} else if (d.data.label == "Big") {
return bigarc(d);
} else {
console.log("target")
return smallarc(d);
}
})工作代码这里
希望这能有所帮助!
https://stackoverflow.com/questions/34038216
复制相似问题