我正在尝试创建部分填充的圆圈,就像最终纽约时报政治大会可视化中的圆圈一样:http ://www.nytimes.com/interactive/2012/09/06/us/politics/convention-word-counts.html
我为 d3 中的 clipPaths 找到的两个最清晰的代码示例(https://gist.github.com/1067636和http://bl.ocks.org/3422480)为每个剪辑路径创建具有唯一 id 的单个 div 元素然后将这些路径应用于单个元素。
我不知道如何从这些示例转到可视化,该可视化具有基于数据值的一组元素中的每个元素的唯一圆形 clipPath,以便我可以创建我的效果。
这是我到目前为止所拥有的:
给定具有以下结构的数据:
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 示例http://bl.ocks.org/3422480中的算法从每个数据点的比例 (pctFull) 计算 k (和 h)
3) 使用 k 为覆盖圆的适当区域的每个数据点生成一个矩形。
我认为如果我可以将每个矩形的可见性限制在其各自的圆圈内,那么这个插图就可以完成,但这就是我被卡住的地方。我尝试了很多东西,但都没有奏效。
这是jsfiddle:http: //jsfiddle.net/G8YxU/2/