1. 程式人生 > >用d3.js畫餅狀圖

用d3.js畫餅狀圖

<html>  
  <head>  
        <meta charset="utf-8">  
        <title>餅狀圖</title>  
  </head> 

<style>


</style>
    <body>  
		<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>  
        <script>
		
	var width = 400;
		var height = 400;
		var dataset = [ 30 , 10 , 43 , 55 , 13 ];
		
		var svg = d3.select("body")
					.append("svg")
					.attr("width", width)
					.attr("height", height);
		
		var pie = d3.layout.pie();

		var piedata = pie(dataset);
		
		var outerRadius = 150;	//外半徑
		var innerRadius = 5;	//內半徑,為0則中間沒有空白

		var arc = d3.svg.arc()	//弧生成器
					.innerRadius(innerRadius)	//設定內半徑
					.outerRadius(outerRadius);	//設定外半徑
		
		var color = d3.scale.category10();
		
					var arcs = svg.selectAll("g")//g用於把相關元素進行組合的容器元素
					  .data(piedata)
					  .enter()
					  .append("g")
					  .attr("transform","translate("+ (width/2) +","+ (width/2) +")");
					  
		arcs.append("path")
			.attr("fill",function(d,i){
				return color(i);
			})
			.attr("d",function(d){
				return arc(d);
			});
		
		arcs.append("text")
			.attr("transform",function(d){
				return "translate(" + arc.centroid(d) + ")";
			})
			.attr("text-anchor","middle")
			.text(function(d){
				return d.data;
			});
		
		console.log(dataset);
		console.log(piedata);
		  
        </script>  
		
    </body>  
</html>  
演示地址:http://runjs.cn/detail/b5xujnep