D3图表对齐标题和图表位置

时间:2018-10-05 06:42:13

标签: javascript d3.js charts pie-chart

我在应用程序中使用D3绘制饼图。我用一些示例数据创建了一个饼图。但是此图表存在对齐问题,添加标题没有按预期运行,我添加了x,y属性来放置图表,但没有成功。我想将这些内容添加到不正确的地方。有人可以指出这里有什么问题。以下是示例代码。我的确切要求是为图表添加标题,并使图表居中。 https://jsfiddle.net/yasirunilan/r8hkpx49/7/

var w = 400;
var h = 400;
var r = h/2;
var color = d3.scale.category20c();

var data = [{"label":"Category A", "value":20}, 
                  {"label":"Category B", "value":50}, 
                  {"label":"Category C", "value":30}];


var vis = d3.select('#container').append("svg:svg").data([data]).attr("width", w).attr("height", h).append("svg:g").attr("transform", "translate(" + r + "," + r + ")");
var pie = d3.layout.pie().value(function(d){return d.value;});

// declare an arc generator function
var arc = d3.svg.arc().outerRadius(r);

// select paths, use arc generator to draw
var arcs = vis.selectAll("g.slice").data(pie).enter().append("svg:g").attr("class", "slice");
arcs.append("svg:path")
    .attr("fill", function(d, i){
        return color(i);
    })
    .attr("d", function (d) {
        // log the result of the arc generator to show how cool it is :)
        console.log(arc(d));
        return arc(d);
    });

// add the text
arcs.append("svg:text").attr("transform", function(d){
            d.innerRadius = 0;
            d.outerRadius = r;
    return "translate(" + arc.centroid(d) + ")";}).attr("text-anchor", "middle").text( function(d, i) {
    return data[i].label;}
        );

0 个答案:

没有答案