我目前有一个用 D3.js 构建的饼图,看起来像这样,但数据不同
数据使用 JSON 从外部加载。这是我的代码
(function() {
var w = 670,
h = 326,
r = 150,
inner = 80,
color = d3.scale.category20c();
d3.json("script.php", function (data) {
var vis = d3.select("#pieGraph")
.append("svg:svg")
.data([data])
.attr("width", w)
.attr("height", h)
.append("svg:g")
.attr("transform", "translate(" + r + "," + r + ")")
var arc = d3.svg.arc()
.innerRadius(inner)
.outerRadius(r);
var pie = d3.layout.pie()
.value(function(d) { return d.value; });
var arcs = vis.selectAll("g.slice")
.data(pie)
.enter()
.append("svg:g")
.attr("class", "slice")
arcs.append("svg:path")
.attr("fill", function(d, i) { return color(i); } )
.attr("d", arc)
})
})();
使用我的数据,有些切片太小而无法容纳文本。当我遇到以下情况时,我正在尝试查找显示信息的选项:
http://jsbin.com/ukaxod/144/embed?javascript,live
我怎样才能模仿这些动画?我想知道当用户将鼠标悬停在切片上时如何在中心添加文本/值。我还想知道如何添加弧线和调整大小动画。我在任何地方都没有找到任何类似的例子,所以一些帮助会很棒。
谢谢!
编辑:这是我取得的一些进展。将“/1/”添加到 JSFiddle URL 的末尾,因为我没有足够高的声誉
我仍在寻找一种在中心显示文本和弧形动画的方法