从.csv文件中读取时间轴不起作用

时间:2018-04-10 00:25:12

标签: javascript date d3.js

我正在尝试使用Mike Bostock的代码在here上使用画笔实现时间轴。

我可以在CodePen链接上的here上找到我的代码。

在函数drawTimeline中,我定义了一个变量数据(来自第19-23行),它接收了.csv文件的前七个值。我遇到的问题是,即使代码在我对可变数据进行硬编码时工作正常(在第24行),当我通过推入我创建的数组中的前七个值来使用它时,它也不起作用。我已经使用console.log来打印外部的值,它们的格式与我硬编码的格式相同,但是在csv派生数组的情况下时间轴没有显示任何内容。有人可以帮忙解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您的时间表 有效。问题只是时间跨度。

当您对数据进行硬编码时,您拥有此域名(我在澳大利亚,根据您所在的时区,您可能会看到不同的时间):

[Fri Jan 19 2018 20:36:02 GMT+1100, Thu Jan 25 2018 20:36:02 GMT+1100]

此域名在时间跨度内差不多有一周。另一方面,当您按下前7个值时,这就是域:

[Tue Mar 06 2018 21:52:42 GMT+1100, Tue Mar 06 2018 23:55:30 GMT+1100]

如你所见,只需几个小时。但它是一个正确的域,所以图表应该工作。这里发生了什么?

问题在于您将此设置为刻度:

.ticks(d3.timeDay)

显然,该域名只有几个小时,而不是几天。

解决方案

删除ticks方法。

以下是更新的CodePen:https://codepen.io/anon/pen/eMxzGM?editors=0010