<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Test10_D3.js</title>
<!-- d3.js的引用要放在Header內 -->
<script src="d3/d3.min.js"></script>
</head>
<body>
<!-- D3.js的Scropt語法要放在Body內 -->
<script>
//新增一個SVG,並設定長、寬
var svg = d3.select("body").append("svg")
.attr("width", 800)
.attr("height", 800)
.append("g")
//因為原點座標0,0在左上角,所以必須位移到指定的位置上,
//否則會因為在畫圓時,圓心座標在0,0而導致部份圖形被裁切。
//位移就是在原本的座標上加上移動的數值。
.attr("transform", "translate(150,150)");
//定義顏色
var color = d3.scale.ordinal()
.range(["#abc5c5","#89a68a","#6b5488","#6a456c"]);
//資料
var dd = [10,20,30,40] ;
//繪製圖餅圖,必備的三個:
//d3.svg.arc()
//d3.layout.pie()
//.append("path")
//利用arc來產生圓形的accessor函數,
//函數包含有內、外圓的角度起迄,
//內、外圓的半徑
var arc1 = d3.svg.arc()
//設定內、外圓形的半徑大小
.outerRadius(100)
.innerRadius(0);
//建立一個layout pie物件,無排序
var pie = d3.layout.pie()
.sort(null) ;
var g1 = svg.selectAll("g")
.data(pie(dd))
.enter()
.append("g")
//實際畫圓的方式是以SVG圖形路徑(Path)來繪製
.append("path")
//路徑的部份要設定在d屬性中,所以套入arc1函數,
//d3.js會依據資料配合arc1函數產出Path所需的路徑
.attr("d", arc1)
.style("fill", function(d) {
return color(d.data);
});
</script>
</body>
</html>