【问题标题】:i have a map variable i need to use that to draw a pie chart in d3.js我有一个地图变量,我需要用它在 d3.js 中绘制饼图
【发布时间】:2015-06-08 04:49:09
【问题描述】:
 var map = new object();

 var pie = d3.layout.pie().value(function(d) { return d ;} );

 var arcs =group.selectAll(".arc").data(pie(JSON.parse(map))) 
           .enter().append("g")
           .attr("class","arc");
 arcs.append("path")
 .attr("d",arc)
 .attr("fill" , function (d) { return color(d.map ); });

 arcs.append("text")
 .attr("transform", function(d){ return "translate(" +arc.centroid(d)+       
 ")";})
 .attr("text-anchor","middle")
 .attr("font-size","1.5em")
 .text(function(d){ return d.data; });

 arcs.append("text")
    .attr("dx", function(d){return -100;})
 .attr("dy", function(d){return 9;})
    .text(function(d){return totalmails+" mails in last 7days";})
.attr("font-size","1.5em")
.attr("fill","black");

我的地图变量包含以下数据..

 Object {URGENT: 10, NORMAL: 20, FYI: 30}...

我需要用它来绘制饼图。在这里,我尝试使用 json 解析来绘制饼图。所以请在使用 json 之前建议如何为 json 数据绘制饼图 我尝试仅使用数字数组绘制。现在我需要使用 json 绘制,它的形式为Object {URGENT: 10, NORMAL: 20, FYI: 30},需要绘制紧急的键,正常,仅供参考

【问题讨论】:

    标签: javascript jquery d3.js charts


    【解决方案1】:

    实际上,我在您的代码中看不到任何 JSON 数据。 map 变量只是一个对象。包含您的数据的 JSON 将类似于以下字符串:

    var map = '{"URGEND":10,"NORMAL":20,"FYI":10}';
    

    如果可以选择更改 JSON,则更好的饼图布局是:

    var map = '[{"name":"URGEND","value":10},{"name":"NORMAL","value":20},{"name":"FYI","value":10}]';
    

    这样你就可以使用layout.pie,其值函数为:

    .value(function(d){return d.value;})
    

    你可以这样使用.text()函数:

    .text(function(d){ return d.name; })
    

    如果您仍有不清楚的地方,也许您应该发布更多代码,例如函数 arccolor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-18
      • 2020-10-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 2017-10-08
      相关资源
      最近更新 更多