我正在使用d3 lib构建图。
图表非常简单,y轴为欧元,x轴为货币,因此我可以显示一段时间内银行帐户的演变情况。
我想在月份标签上添加一些样式,具体取决于该月帐户上可用的相应金额,请绘制x轴,如下所示:
(d3Data包含绘制图形所需的所有数据)
d3Data.xScale = d3.scale.ordinal().domain(
d3Data.dateStates.map(function(dateState) {
return dateState.xValue
})
);
xAxis = d3.svg.axis().scale(d3Data.xScale).orient("bottom")
d3Data.chart.append("g").call(xAxis)
Run Code Online (Sandbox Code Playgroud)
这有效地创建了轴,但现在,我想在每个刻度上添加一些样式类,例如“零”,“最大”或其他。
我的第一种方法是选择所有刻度,然后执行以下操作:
d3Data.chart.selectAll(".xAxisItemClass")
.attr('class', function(data, index) {
if (d3Data.months[index].value === 0)
return 'zero'
});
Run Code Online (Sandbox Code Playgroud)
但是d3Data在作为第二个参数传递给attr()调用的匿名函数中不存在。我在d3上有点菜鸟,所以可能我错过了一些东西,因为这么简单这应该很容易
为什么我内部无法访问D3data?我怎样才能做到这一点?
提前致谢 :)