将特定刻度添加到D3.js轴

时间:2014-06-05 10:39:52

标签: d3.js

我创建了一个带有d3.svg.axis和时间刻度的轴,并且对刻度线生成器生成的刻度非常满意。但是,我想确保始终标记特定值。例如,如果生成器生成以下日期

2000-1-1,2001-1-1,2002-1-1,2003-1-1

我可能想让轴显示

2000-1-1, 2000-7-21 ,2001-1-1,2002-1-1,2003-1-1

如何获取tick生成器生成的滴答数组,以便我可以添加我的值并将其传递给tickValues函数?

我可以创建第二个轴,对其进行样式化以删除域路径并将任何其他日期传递给那些tickValues函数,但这看起来有点尴尬。

或者我是以错误的方式解决这个问题?

由于

1 个答案:

答案 0 :(得分:14)

一旦你设置了你的规模&如果没有参数,您可以调用ticks()来获取它生成的值:

ticks = myScale.ticks();

然后你可以推/拼/其他:

ticks.push(some_new_value):

然后将它们传回tickValues

myAxis.tickValues(ticks);

在此之前完成所有这些操作。当然,请将此轴添加到SVG中。