如何在圆环图中间添加一个圆圈并将其填入d3 js?

时间:2017-01-02 13:00:43

标签: javascript html d3.js html5-canvas

我正试图通过向svg添加一个新的圆圈来填充圆环图的中间位置。圆圈应该是白色的并且覆盖背景中的水平线,但是我在圆环图中间实现了透明圆圈。
这是我目前为止的代码和img enter image description here

var width = 650,
    height = 500,
    outerRadius = 100,
    innerRadius = outerRadius - 80;

var arc = d3.svg.arc()
    .outerRadius(outerRadius)
    .innerRadius(innerRadius);

var arcOver = d3.svg.arc()
    .innerRadius(innerRadius)
    .outerRadius(outerRadius + 5);

var pie = d3.layout.pie()
    .sort(null)
    .value(function(d) { return d.value; });

// Define the div for the tooltip
var div = d3.select("body").append("div")
    .attr("class", "tooltip")
    .style("opacity", 0);

var svg = d3.select('.chart-container').append("svg")
    .attr("width", width)
    .attr("height", height)
    .append("g")
    .attr("transform", "translate(325,250)");

svg.append("svg:circle")
    .attr("cx", 0)
    .attr("cy", 0)
    .attr("r", 20)
    .append("g");

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

svg.append("svg:circle")
    .attr("cx", 0)
    .attr("cy", 0)
    .attr("r", 20)
    .style("fill", "white")
    .append("g");

或者更好的方法是做这样的事情:

svg.append("svg:circle")
    .attr("cx", 0)
    .attr("cy", 0)
    .attr("r", 20)
    .attr("class", "white-circle")
    .append("g");

然后,在CSS中:

.white-circle {
    fill: #FFF;
}