在scaleTime()上工作不起作用

时间:2016-07-06 16:43:16

标签: javascript d3.js

我正在尝试设置一个时间表,其中包含两天相隔40天的域名。我的数据是:

[
   {
      "date": "Wed Jul 06 2016 16:44:14 GMT-0400",
      "dailyVerified": 44,
      "totalVerified": 206
   },
   // other data would go here...
   {
      "date": "Sun Aug 14 2016 16:44:14 GMT-0400",
      "dailyVerified": 27,
      "totalVerified": 2109
   }
]

尝试设置scale.ticks(x)时,似乎没有做任何事情。代码是:

var x = d3.scaleTime();

x
  .domain([firstDate, lastDate])
  .range([0, 600])
  .ticks(d3.timeDay.every(3))

For full code see jsbin

我尝试每隔3天将刻度设置为1,就像在api文档中一样,但它似乎没有做任何事情 - 刻度仍按周划分。有什么想法吗?是因为我错误地设置了域名吗?

1 个答案:

答案 0 :(得分:0)

我明白了。我试图在轴上设置刻度而不是刻度。所以而不是:

x.ticks(d3.timeDay.every(5))

我需要这样做:

const xA = d3.axisBottom(x);
// set the ticks on the axis
xA.ticks(d3.axisBottom(x))