官术网_书友最值得收藏!

Create the background donut

The final setup we need to do before connecting the loaded data to arc segments is setting up the gray donut you see when the first data is loaded. For this, we use the d3.arc() function:

var arc = d3.arc() 
.outerRadius(height/2 * 0.6)
.innerRadius(height/2 * 0.3);

// add a grey background arc
pieContainer.append('path')
.attr("class", 'backgroundArc')
.attr("d", arc({startAngle: 0, endAngle: 2 * Math.PI}));

The d3.arc() function isn't an SVG element we can add to the page, but it is a generator. A generator is a function that, when called, returns a path string that we can then add to a path element. Besides a generator for arc segments, D3 also provides generators for lots of other structures, as we'll see throughout this book. In this case, the generator allows us to create donut or pie segments as SVG paths that we can add. In the previous code, we used this to create a full donut: arc({startAngle: 0, endAngle: 2 * Math.PI}). Note that we've also could have specified these two properties when we called d3.arc() to create the generator. The following properties and functions are available on the d3.arc() function:

Finally, let's add some CSS for this arc, and a nice border around the main container:

.backgroundArc { 
fill: #ddd;
}

.chart {
margin: 10px;
border-radius: 5px;
border: solid #555555 thin;
background-color: #eee;
}

We have our basic setup, which at this point looks like this:

Not very exciting yet, so let's add the colored segments that make up the donut.

主站蜘蛛池模板: 河曲县| 绥滨县| 叙永县| 建湖县| 应城市| 云和县| 贵溪市| 岳西县| 宜黄县| 张家口市| 乐安县| 松江区| 台北市| 天门市| 雅江县| 昌图县| 青海省| 莱芜市| 阿鲁科尔沁旗| 北票市| 灵宝市| 秦安县| 石城县| 丹棱县| 鹿泉市| 浙江省| 平昌县| 黑山县| 郧西县| 河津市| 永新县| 昌乐县| 长顺县| 合水县| 南和县| 新余市| 河津市| 津南区| 延吉市| 商丘市| 郁南县|