我有一个地图变量,我需要用它在d3.js中绘制饼状图
i have a map variable i need to use that to draw a pie chart in d3.js
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");
my map变量包含以下数据…
Object {URGENT: 10, NORMAL: 20, FYI: 30}...
我需要用这个来画饼状图。在这里,我尝试使用json解析来绘制饼。所以请建议如何绘制饼json数据使用json之前,我试图用一个数组的数字绘制。现在我需要使用json绘制,这是在这种形式的Object {URGENT: 10, NORMAL: 20, FYI: 30}
,需要绘制键紧急,正常,仅供参考
实际上我在你的代码中看不到任何JSON数据。map
变量只是一个对象。包含数据的JSON看起来像以下字符串:
var map = '{"URGEND":10,"NORMAL":20,"FYI":10}';
如果有更改JSON的选项,更好的piecharts布局应该是:
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; })
如果你仍然有不清楚的地方,也许你应该发布更多的代码,像函数arc
和color
相关文章:
- 如何在d3.js中返回路径的y坐标
- 有条件更新d3.js力图中节点的最佳方法
- 使用D3.js计算带有字母间距的文本长度
- D3.js模式不适用于弧形或圆环图
- d3.js Chord图的动态工具提示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- HTML5FileReader输出到D3.js图表
- D3.js生成有效的SVG,但不显示任何内容
- 更改 JS/D3 页上的元素位置
- 带有更新按钮.js D3 将新数据添加到旧数据而不是替换旧数据
- D3.js d3.max undefined
- 为什么我的 js.d3 代码不显示轴
- dc.js d3+crossfilter.top将过滤后的数据导出为CSV
- 如何在Plottable.js/D3.js制作的饼图中启用qtip2
- 2dimple.js/d3.js在窗口大小更改时自动调整图表大小
- D3.js D3.json返回Uncaught TypeError:无法读取属性'0'的未定义
- 如何计算(SVG) X/Y坐标的平移和旋转(在JS/D3.js)
- 当我们需要信任大约 200-300 个自定义图表时.js D3 是最佳选择吗?
- 简单条形图按字符串名称分组,带有 DC.js D3.js 和交叉过滤器.js
- 缺少标签- Cola.js/D3.js