我正在尝试通过从单击的按钮传递的变量来更改数据集。
这是我到目前为止所做的一个例子:http: //jsfiddle.net/earlybirdtechie/qmC9E/
d3.selectAll('button.decadeBtn')
.on("click", function() {
var currentDecadeName = $(this).attr('data-decade');
console.log('currentDecadeName: '+ currentDecadeName);
svg.selectAll("rect.bars")
.data(currentDecadeName, function(d) { return d.id })
.transition()
.duration(1499)
.ease("bounce")
.attr({
height: function(d,i) {
return d.value;
}
})
在上面的 jsFiddle 示例中,当您单击任何按钮时,条形应该会根据十年的数据而变化。然而,代码需要的是数据名称,而不是动态变量名称。因此,如果您转到 js 代码中的第 43 行并将变量名称 'currentDecadeName' 替换为 'seventies',那么一旦单击任何按钮,条形就会变为 70 年代数据。我怎样才能让它与动态变量而不是静态数据变量一起工作?
当我在 google groups 中发布这个问题时,我被告知要使用 map 对象,但是,我是个菜鸟,不清楚 d3.map 是如何工作的。
任何人都可以澄清如何在这种情况下使用 d3.map,或者指向我关于地图对象如何在 d3 中工作的教程?
谢谢!