我正在尝试制作一个平行坐标图并基于http://bl.ocks.org/jasondavies/1341281示例进行开发。
如果我想将DateTime格式属性用作图表中的一个轴,我需要更改/修改/添加代码?
答案 0 :(得分:1)
我认为将时间作为自纪元以来的毫秒数添加到csv文件就足够了,以下几行将把字符串转换为数字:
// Extract the list of dimensions and create a scale for each.
x.domain(dimensions = d3.keys(cars[0]).filter(function(d) {
return d != "name" && (y[d] = d3.scale.linear()
.domain(d3.extent(cars, function(p) { return +p[d]; }))
.range([height, 0]));
}));
p[d]
当新列(让我们称之为time
)到达时,对该特定列的汽车执行d3.extent
将获得最大值和最小值(作为数字)和会将它们映射到范围[height,0],这样无论何时执行y['time'](value)
且值都在[min, max]
范围内,它都会映射到[height, 0]
要获取自纪元运行+(new Date())
以来的新日期已过去的时间,Date
构造函数的参数将是您为此案例决定的参数。
我发现的一个问题是标签(数字会类似于1426573656530
)所以我会使用tickFormat来更改每个轴的标签