我正在尝试创建部分填充的圆圈,就像最终的《纽约时报》政治大会可视化中的圆圈一样:http://www.nytimes.com/interactive/2012/09/06/us/politics/convention-word-counts.html http://www.nytimes.com/interactive/2012/09/06/us/politics/convention-word-counts.html
我在 d3 中找到的两个最清晰的 ClipPaths 代码示例(https://gist.github.com/1067636 https://gist.github.com/1067636 and http://bl.ocks.org/3422480 http://bl.ocks.org/3422480)为每个剪辑路径创建具有唯一 id 的单独 div 元素,然后将这些路径应用到单个元素。
我不知道如何从这些示例转到基于数据值的一组元素中的每个元素具有唯一的圆形 ClipPath 的可视化,以便我可以创建效果。
这是我所拥有的so far:
给定具有以下结构的数据:
data = [
{value: 500, pctFull: 0.20, name: "20%"},
{value: 250, pctFull: 0.75, name: "75%"},
{value: 700, pctFull: 0.50, name: "50%"},
]
1) 为数据集中的每个对象创建一个带有圆圈的力图。圆的面积是从对象值导出的。
2) 使用 mbostock 示例中的算法根据每个数据点的比例 (pctFull) 计算 k(和 h)http://bl.ocks.org/3422480 http://bl.ocks.org/3422480
3) 使用 k 为每个数据点生成一个覆盖圆的适当区域的矩形。
我认为如果我可以将每个矩形的可见性限制在其各自的圆上,那么插图就可以完成,但这就是我陷入困境的地方。我尝试了很多方法,但没有一个有效。
这是jsfiddle:http://jsfiddle.net/G8YxU/2/ http://jsfiddle.net/G8YxU/2/