我将在我的饼图(中心)的每个弧中放置一个文本元素 - 如下例所示:http: //bl.ocks.org/mbostock/3887235
但是,如果房间足够整个文本,我只会放置文本元素,所以我必须将我的文本元素的大小与每个弧中的"可用"空间进行比较.
我想我可以用getBBox()来获取文本尺寸...但是如何获得(和比较)每个弧中可用空间的尺寸.
谢谢...!
我在D3中绘制一个饼图,但是文本剪辑本身有问题:
这是我的绘图功能:
pie: function(config)
{
var width = config.width || 840,
height = config.height || 520,
radius = Math.min(width, height) / 2;
var color = this._color = d3.scale.ordinal().range(["#98abc5", "#8a89a6", "#7b6888", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]);
var arc = d3.svg.arc().outerRadius(radius - 10).innerRadius(0);
var pie = d3.layout.pie().sort(null).value(function(d) { return d.value; });
var svg = d3.select("body").append("svg").attr('id', config.id || 'chart').attr("width", width).attr("height", height)
.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var g = svg.selectAll(".arc").data(pie(config.data)).enter().append("g").attr("class", "arc");
g.append("path").attr("d", arc).style("fill", function(d) { …
Run Code Online (Sandbox Code Playgroud)