Javascript NVD3图形的自动日期标注

Javascript NVD3图形的自动日期标注,javascript,d3.js,graph,nvd3.js,Javascript,D3.js,Graph,Nvd3.js,我希望当我更改焦点范围时,日期标签会自动计算、显示和消失,以便它们不会重叠 我正在使用带有焦点图的多条形图,其默认顺序比例为nv.models.MultiBar()。当我在xAxis上使用.ticks(availableWidth/100)时,它似乎会为每个日期生成一个tick标签,或者至少为其中的大量日期生成一个tick标签: 在nv.models.lineWithFocusChart()上,标签会自动缩小以适合空间。这可能是因为它对nv.models.scatter()使用了scale,这是

我希望当我更改焦点范围时,日期标签会自动计算、显示和消失,以便它们不会重叠

我正在使用带有焦点图的多条形图,其默认顺序比例为
nv.models.MultiBar()
。当我在xAxis上使用
.ticks(availableWidth/100)
时,它似乎会为每个日期生成一个tick标签,或者至少为其中的大量日期生成一个tick标签:

nv.models.lineWithFocusChart()
上,标签会自动缩小以适合空间。这可能是因为它对
nv.models.scatter()
使用了scale,这是一个
d3.scale.linear()
,但我不确定。我尝试用以下方法创建自己的比例:

x = d3.scale.ordinal() //as well as x = d3.scale.linear()
      .domain(d3.extent(data.map(function(d) {
                return d.values.map(function(d,i) {
                    var X = getX(d,i);
                    return X.getTime();
                });
            })))
         .range([0, availableWidth]);
对于序数刻度,我得到以下结果:

线性比例没有标签。这种方法有效吗?如果是,我做错了什么

nv.models.multiBarChart()
上,有一个
.reduceTexticks(布尔值)
选项,但这只适用于multiBarChart,似乎没有一种简单的方法将其添加到
nv.models.multiBar()
。我能用这个吗


如果有什么我没试过的,请告诉我。我不想自己计算标签,并使用.tickValues()指定它们。

事实上,解决方案是对x轴使用
d3.scale.linear()
。我在上面尝试的方法不起作用,因为我在指定上下文图表的整个域,而我需要指定当前选择的最小值和最大值

图表(选择){…}
中,我把

x = d3.scale.linear() 
     .range([0, availableWidth]);
onBrush()
中,我将
x.domain([新日期(范围[0]),新日期(范围[1])),其中区段包含选择的最小和最大日期(以毫秒为单位)