【发布时间】:2013-12-05 12:34:39
【问题描述】:
http://jsfiddle.net/pRkpL/ 和 http://fiddle.jshell.net/pRkpL/show/
我正在制作一个基于此演示的弧形图:http://bl.ocks.org/sjengle/5431779。我花了一段时间才达到这个阶段,现在图表可以以我需要的所有方式适应数据。
但是,我有两个问题:
1) 我需要创建 2 个弧形图 - 一个在黑色矩形上方(代码中命名为桶),一个在下方。作为临时修复,我使用 css3 3D 变换在 x 轴上翻转其中一个弧形图,但浏览器支持充其量是不稳定的。它确实有效,仅在 Chrome 中有效,有时您必须刷新、打开开发工具或调整小提琴框架的大小才能启动。我想用 d3 正确地做到这一点。
我认为创建红色弧线(圆的下半部分)的代码是这样的:
var radians = d3.scale.linear()
.range([Math.PI / 2, 3 * Math.PI / 2]);
我发现如果我删除最后一个/ 2,它会显示一个完整的圆圈,但是我无法让它在我的drawTop 函数中只显示上半部分。
2) 我目前为 2 个弧形图复制了 2 个大型函数,drawTop 和 drawBtm。两者之间的唯一区别是数据数组(good_jumps 和 bad_jumps)、容器 id 和上面的弧度逻辑,如果可以解决的话。有没有办法可以将这些组合成一个,这样我就不会重复逻辑?
我是 JS 的新手,所以如果代码中有任何明显的错误,请告诉我 :) 此外,由于 json 来自外部 api,因此无法更改它。
【问题讨论】:
标签: javascript jquery d3.js data-visualization arc-diagram