时间序列的差距没有出现

时间:2016-12-14 00:16:00

标签: d3.js

我正在处理省略周末数据的时间序列数据。在D3 v4中绘制这些时间序列时,图表会在周末进行插值。有关说明,请参阅以下URL(包括代码,数据和图形输出):

No records for weekend

相反,我希望周末能有差距;图表在周五停止并在周一恢复。

我可以通过创建周末的虚拟记录,使用值' NA'以及使用D3 $con = mysql_connect('localhost','ctollins1','Apples11'); $db = mysql_select_db('ctollins_TRTdesign', $con); $sql="INSERT INTO USER (userName, userPassword) VALUES ('$_POST[uname]','$_POST[pass]')"; if (!mysql_query($sql,$con)) { die('Error!: ' . mysql_error()); } echo "1 new client added"; mysql_close($con)方法来解决问题,如下所示:

Data has NA records

然而,生成虚拟记录对我来说就像是过度沉重的提升。当缺少时间序列记录时,有没有一种简单,自然的方法让D3留空?

1 个答案:

答案 0 :(得分:0)

  

当缺少时间序列记录时,是否有一种简单,自然的方法让D3留空?

不幸的是不,这是时间尺度的正常行为。根据D3创造者Mike Bostock的说法,

  

当您希望将时间显示为连续的定量变量时,应使用d3时间刻度,例如当您想要考虑由于夏令时变化导致天数为23-25小时这一事实时,以及由于闰年,年数可能在365-366天之间。

因此,时间尺度的创建考虑到了连续的时间。

您在线路生成器中的当前方法......

.defined(function(d) { return !isNaN(d.value); })

...不起作用,因为CSV中的所有日期都有值,而d3会连接点。

如果您想要保持差距,只需在周末和null使用虚拟记录(如line.defined或任何非数字值),就像你的第二个链接一样。