我在这里有一个codepen - https://codepen.io/anon/pen/ddPMVx?editors=1010
这是一个简单的堆积条形图
数据中的每个堆栈都在其自己的图层中,并带有一层'层'
我想添加另一个类,它是创建堆栈的键的键名称
.classed('layer', true)
// .classed((i)=>{
// return keys[i],
// }, true)
答案 0 :(得分:1)
您无法使用classed
的功能。有关详细信息,请查看我的answer here。
您可以使用getter获取现有类并添加所需的类。但是,请注意:您在参数中使用字母i
这一事实......
function(i){...
...并不意味着它是索引。索引是第二个参数,无论其名称如何。所以,它应该是:
function(_, i){...
所有这一切,这是一种添加密钥名称而不覆盖现有类的方法:
.attr("class", function(_, i){
return d3.select(this).attr("class") + " " + keys[i]
});
以下是更新的CodePen:https://codepen.io/anon/pen/JpoKLK?editors=1010
答案 1 :(得分:1)
使用attr()
功能,但请在classed()
来电之前确认,因为它会覆盖您的所有课程:
.attr('class', (_, i) => keys[i])
.classed('layer', true)