餅圖

弧形表圖

 var dataSet = [
//        定義多個接連弧形組成一個完整的圓
        {startAngle: 0, endAngle: .6 * Math.PI},
        {startAngle: .6 * Math.PI, endAngle: .7 * Math.PI},
        {startAngle: .7 * Math.PI, endAngle: 1.25 * Math.PI},
        {startAngle: 1.25 * Math.PI, endAngle: 1.65 * Math.PI},
        {startAngle: Math.PI * 1.65, endAngle: 2 * Math.PI}
    ];
    var arcPath = d3.svg.arc().innerRadius(0).outerRadius(150);
    var color = d3.scale.category10();
    var svg = d3.select("body").append("svg").attr("width", 400).attr("height", 400);
    svg.selectAll("path").data(dataSet).enter().append("path").attr("d", function (d) {
        return arcPath(d)
    }).attr("stroke", function (d, i) {
        return "white";
    }).attr("transform", "translate(200,200)").attr("stroke-width", 1).attr("fill", function (d, i) {
        return color(i);
    });
    svg.selectAll("text").data(dataSet).enter().append("text").attr("transform", function (d, i) {
//        arcPath.centroid(d)獲取一段弧的中心點**數組**
//        translate可以定義多個 表示一段一段距離后相對現在的位置接連移動一段距離
        return "translate(200,200)" + "translate(" + arcPath.centroid(d) + ")";
    }).attr("text-anchor", "middle").attr("fill", "white").attr("font-size", "18px").text(function (d) {
        return Math.floor((d.endAngle - d.startAngle) * 180 / Math.PI) + " °";
    })

結果:

弧形

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容