是否可以在所有值都为0的情况下启动D3JS饼图
Is it possible to start a D3JS pie chart with all values being 0?
我正在制作一个简单的工具来显示用户操作的一组值。我希望所有的值都从0开始,当数据被处理时,从0开始增长。
除了在0处启动所有值时在控制台中出现错误之外,我已经设置好了所有内容。
这可能吗?
这是我现在的代码(如果值大于0,它就起作用):
var width = this.get('width');
var height = this.get('height');
var radius = Math.min(width, height) / 2;
var color = this.get('chartColors');
var data = this.get('chartData');
var arc = d3.svg.arc()
.outerRadius(radius)
.innerRadius(0);
var pie = d3.layout.pie()
.sort(null)
.value(function(d) { return d.count; });
var id = this.$().attr('id');
var svg = d3.select("#"+id)
.attr("width", width)
.attr("height", height)
.append("g")
.attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var g = svg.selectAll("path")
.data(pie(data));
g.enter()
.append("path")
.attr("d", arc)
.each(function(d){ this._current = d; })
.style("fill", function(d, i) { return color[i]; })
.style("stroke", "white")
.style("stroke-width", 2);
这个问题是一个概念问题——如果一切都是0,你将如何绘制饼图?但是,您可以从一个空数据集开始,并在数据大于零时添加新数据。这就留下了将饼图片段从0增长到所需大小的动画问题。
为此,可以设置从开始角度开始的饼图分段的结束角度的动画。最简单的方法是复制相应的数据对象,并在角度之间:
.each(function(d) {
this._current = JSON.parse(JSON.stringify(d));
this._current.endAngle = this._current.startAngle;
})
.transition().duration(dur).attrTween("d", arcTween);
此处为随机示例。
相关文章:
- jQuery悬停在没有鼠标悬停的情况下启动
- Apache Cordova:在不启动浏览器应用程序的情况下运行Cordova运行浏览器
- 默认情况下在代码镜像中启动全屏
- Ajax-函数在没有调用或单击的情况下启动
- 是否可以在所有值都为0的情况下启动D3JS饼图
- 返回按钮回调函数在特定情况下失败或未启动
- 只有在前一个功能成功完成的情况下,我才能正确地启动此功能
- 如何在没有用户确认的情况下在iPhone的浏览器中启动音频
- 在不重新加载文件的情况下重新启动 gif 动画
- XMLHttpRequest 在不启动 onreadystatechange 函数的情况下启动多次
- 如何在不重新启动 Web 应用程序的情况下以编程方式使 JavaScript 和 CSS 包失效或刷新
- 如何在没有window.open的情况下从Javascript启动PHP文件
- 在不更改 html 内容的情况下“启动”iframe
- 我的代码在没有警报()的情况下无法正常工作;启动函数
- 即使在自动播放=“假”预加载=“无”之后,视频也会在不单击播放按钮的情况下启动
- 在不执行浏览器操作的情况下启动chrome扩展
- HTML和JSP—如何在不移动到另一个页面的情况下启动表单上的操作
- 传单.绘制映射:如何在没有工具栏的情况下启动绘制功能
- 在没有.click()的情况下启动leanModal
- 在不重新启动的情况下启动firefox扩展