【发布时间】:2014-01-20 04:49:37
【问题描述】:
如果您使用毫秒形式的日期,是否需要将其转换为字符串才能让 Date 对象识别?
"values":[ {x:1390636800000 , y:12} ,
{ x:1390640400000 , y:17} ,
{ x:1390644000000 , y:17},
{ x:1390647600000 , y:15},
{ x:1390651200000 , y:8} ]
如果是这样,我将如何转换它以便它被正确使用
chart.xAxis
.axisLabel("Time (s)")
.tickFormat(function(d){return d3.time.format('%I%p')(new Date(d))});
它没有吐出 1969 年 12 月/31 日的日期?我试图对整个对象进行字符串化,但这没有用。有什么建议么?感谢您的帮助,如果这是一个愚蠢的问题,对不起
(编辑)这是我正在使用的无法正确显示时间的工作代码
var chart;
nv.addGraph(function() {
chart = nv.models.lineChart()
.options({
margin: {left: 100, bottom: 100},
x: function(d,i) { return i},
showXAxis: true,
showYAxis: true,
transitionDuration: 250
})
;
chart.xAxis
.axisLabel("Time (s)")
.tickFormat(function(d){return d3.time.format('%m/%d/%y')(new Date(d))});
chart.yAxis
.tickFormat(d3.format('d'))
;
d3.select('#chart1 svg')
.datum(data1())
.call(chart);
nv.utils.windowResize(chart.update);
chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); });
return chart;
});
function data1() {
return [
{
"values":[ {x:1390636800000 , y:12} , { x:1390640400000 , y:17} , { x:1390644000000 , y:17}, { x:1390647600000 , y:15}, { x:1390651200000 , y:8} ],
"key": "First Dude "
},
{
"values": [ { x:1390636800000 , y:16} , { x:1390640400000 , y:16} , { x:1390644000000 , y:16}, { x:1390647600000 , y:12}, { x:1390651200000 , y:5}],
"key": "Second Dude "
},
{
"values": [ { x:1390636800000 , y:5} , { x:1390640400000 , y:5} , { x:1390644000000 , y:5}, { x:1390647600000 , y:3}, { x:1390651200000 , y:1}],
"key": "Third Dude "
}
,
{
"values": [ { x:1390636800000 , y:8} , { x:1390640400000 , y:18} , { x:1390644000000 , y:18}, { x:1390647600000 , y:9}, { x:1390651200000 , y:7}],
"key": "Fourth Dude "
}
];
}
【问题讨论】:
-
我怀疑还有其他事情发生。你能把这个问题的一个简短的工作例子放在一起吗?特别是,如果您不指定任何格式,轴会打印什么样的值?
-
添加了一张图片以显示我正在处理的内容
-
好的,我会尽快更新一个工作示例
-
问题出在
x: function(d,i) { return i}这一行;您是在告诉它使用索引值作为 x 值,而不是使用数据 x 值。因此,您的刻度格式化函数正在传递 0-100 的值,这些值都被解释为“零日期”。将这一行更改为x: function(d,i) { return d.x}(或完全省略它——这是 NVD3 的默认设置),你就可以开始了。 -
P.S.在询问有关其图形功能的问题时,请使用“nvd3.js”标签;使用他们的库时,有些事情更容易做,有些事情更难。
标签: javascript date d3.js nvd3.js