我有以下功能可以帮助我在传单地图上绘制图例。
/*Function for generating a legend with the same categories as in the clusterPie*/
function renderLegend() {
var data = d3.entries(metadata.fields[categoryField].lookup),
legenddiv = d3.select('body').append('div')
.attr('id','legend');
console.log(data);
var heading = legenddiv.append('div')
.classed('legendheading', true)
.text(metadata.fields[categoryField].name);
var legenditems = legenddiv.selectAll('.legenditem')
.data(data);
console.log("Partial");
legenditems.enter().append('div').attr('class', function(f){return 'category-'+f.key;})
.text(function(f){console.log('hi'); return f.value;});
legenditems.classed({'legenditem': true});
当我移除.classed({'legenditem': true})
部件时,我看到图例会暂时呈现但不会停留在那里,如果我保留它,它会给出一条错误消息text is not a function
。我认为这与上面用 D3 v3 编写的代码有关。但我似乎无法弄清楚到底是什么。