我的d3美国地图工作正常一段时间,我正在从我的csv数据绘制圆圈没有问题。它看起来像这样:
var url = "my_data.csv";
d3.csv(url, function(error, rawData) {
var data = rawData.map(function(d)
{
return {
File: d.File,
Latitude: +d.Latitude,
Longitude: +d.Longitude,
Place: d.Location,
};
}).filter(d => projection([d.Longitude,d.Latitude]));
然而,我注意到当我试图解析数据的时间维度时,事情变得有点复杂。我的包含日期的数据解析未能引用错误:"无法读取属性'长度'未定义"。我的日期格式为1/22/2015
,因此我使用了以下内容(我也尝试了%x
):
var parseTime = d3.time.format("%m/%d/%Y").parse;
var formatDate = d3.time.format("%m/%d/%Y");
var url = "my_data.csv";
d3.csv(url, function(error, rawData) {
var data = rawData.map(function(d)
{
return {
File: d.File,
Latitude: +d.Latitude,
Longitude: +d.Longitude,
Place: d.Location,
Due: parseTime(d.Due),
//Notif: parseTime(d.Notification)
};
}).filter(d => projection([d.Longitude,d.Latitude]));
我检查D3中有关此错误的现有文献,它似乎有两个主要原因(我至少知道):
我之前没有(太多)问题解析过时数据,所以起初我认为它可能是上述原因中的第二个 - 数据有分隔符问题。也许逗号已被省略或有两个逗号,或者不是逗号而是有句号或分号。
我排除故障的第一步是获取我的数据集(数以千计)并删除除大约80个观察之外的所有内容,这些内容更易于管理。在查看按比例缩小的数据后,一切似乎都井然有序。为了安全起见,除了2个观察结果外,我删除了所有内容,但错误仍然存在。所以,看起来它毕竟不是一个分隔符问题。
问题:整个过程创建的问题多于答案,我不确定如何继续。也许还有另一个我不知道错误的原因?
作为参考,我上传了一个极简主义block我特定的未定义长度'问题。