D3.extent问题与月份的第一天和最后一天的月值混淆

时间:2014-10-02 15:47:16

标签: javascript d3.js

我为我的问题创建了一个Plunkr,找到at the link

使用月份值时,我遇到缩放问题。我确信这是一个简单的解决方法。

我的问题的可视化如下(见12月):

enter image description here

简而言之,当在轴和条的更新模式中使用d3.extent时,d3不能正确计算域。它似乎认为它比它小,所以我有一个条目太多,导致一个条挂起,x轴是一个值太长。

我的xScale正常计算:

xScale = d3.time.scale()
                .domain(d3.extent(data,function(d){return d.funded_month}))
                .rangeRound([0, (w + offsetBar) - (marginleft + marginright)]);

x轴,条形图和文本都在同一个域中工作。

当可视化所有年份时,viz显示正确:

enter image description here

问题是每个相应的可视化中的值数量是不同的(13年对12个月?错误是什么?

1 个答案:

答案 0 :(得分:0)

我无法使用现有的库实现简单的解决方案。

因为D3解释“月,年”格式,假设该日是午夜的第一个月,1月至12月仅被视为11个月。

所以我每个月都会创造一个平滑的轴:

2001-01-01,68991364
2001-02-04,554541108
2001-03-07,151123291
2001-04-10,283000000
2001-05-12,8093737
2001-06-15,55718802
2001-07-18,95060100
2001-08-21,78000000
2001-09-23,150000000
2001-10-25,193330000
2001-11-28,59948530
2001-12-31,142424927

我能够在我的轴文本上使用x translate与条形图同步。

Mike Bostock goes further into this issue here.