在街区 -
http://bl.ocks.org/whatsthebeef/6456877
我正在尝试为selectAll()
中的每个项目的数据添加属性。我解释这个documentation说这应该有用,但事实并非如此。我还尝试了一些CSV文件,这些文件以相同的方式在地图上绘制圆圈,但也无效。我了解还有其他选项,例如在enter()
之后使用数据确实有效但我还有其他用例,这样做太迟了。
当注释掉的代码// .data(countries)
被取消注释并且当前的data(function(d){....})
被删除后,它才能正常运行。
有谁知道我在做什么是可能的,如果是的话,我做错了什么?
答案 0 :(得分:1)
数据的可选第二个参数是key function。我建议将该属性添加到具有forEach
的国家/地区:
var countries = topojson.feature(world, world.objects.countries).features;
countries.forEach(function(d){ d.code = "1"; });
svg.selectAll("path:not(.graticule)")
.data(countries)
.enter().append("path")
.attr("d", path);
答案 1 :(得分:1)
你应该能够以这种方式做你想做的事,比如
.data(data, function(d) { d.bar = 10; return d.foo; })
完整示例here。
这样做是否是一个好主意是一个不同的问题,答案几乎肯定不是。