Javascript 如何使用nvd3折线图在x轴上显示日期

Javascript 如何使用nvd3折线图在x轴上显示日期,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,当我将数字传递到x轴时,图形显示出来。但当我试图在x轴上传递日期时,它什么也不显示。 我已经给了x轴这样的坐标 chart.xAxis .axisLabel('Date') .tickFormat(function(d) { return d3.time.format('%b %d')(new Date(d)); }); y轴的另一个问题是标签没有显示在任何图形中 是我代码的JSFIDLE。我的错误是给出了日期字符串而不是日期对象 因此,我拆分JSO

当我将数字传递到x轴时,图形显示出来。但当我试图在x轴上传递日期时,它什么也不显示。 我已经给了x轴这样的坐标

chart.xAxis
           .axisLabel('Date')
           .tickFormat(function(d) { return d3.time.format('%b %d')(new Date(d)); });
y轴的另一个问题是标签没有显示在任何图形中


是我代码的JSFIDLE。

我的错误是给出了日期字符串而不是日期对象

因此,我拆分JSON并使用x轴标签的日期字符串创建日期对象。 如下图所示

new Date(dateStr)
现在它运行良好

有两件事:

  • 你可以设置股票行情
  • 您可以将您的值从随机字符串转换为NVD3能够理解的值
  • 如果在X轴上提供字符串,NVD3不知道如何对其排序,因此需要一个日期对象。您可以按如下方式设置图表:

    chart.xAxis
      .x(function(d) { new Date(d.x) }) // this convert the data object
      .axisLabel('Date')
      .tickFormat(function(d) { return d3.time.format('%Y-%m-%d')(new Date(d)); }); // this convert the ticker
    

    你看过这根线了吗?试用无效………作为
    tickFormat
    参数的函数将以
    d
    的形式接收每个数据值的
    x
    属性。然后必须使用
    x:newdate(dateStr)
    生成数据;
    tickFormat
    回调将在
    d
    中接收以时间戳表示的该日期,然后您可以将其转换回日期对象并将其反馈给
    d3.time.format
    。至少,这是我理解它并使代码正常工作的方式:)