d3.js - nvD3的新功能-如何使unix时间戳在x轴上显示为日期?

标签 d3.js nvd3.js

适当的披露-我对javascript感到很恐惧,但是想学习!

我有一个数组,里面有一些像这样的条目:

[1349013600] => 232

关键是unix时间戳,值是从那天起的销售额$。我目前在多栏图表上绘制这些图表,效果很好。

问题是我的x轴,当前定义如下:

chart.xAxis
.tickFormat(d3.format(',f'));

它将unix时间戳记作为相对于x轴标签的直线整型并悬停工具提示。我想尝试使其输出为D-M-Y或类似的人类可读日期指示器。

我发现的最接近的是以下代码:
chart.xAxis.tickFormat(function(d) {
       var dx = testdata[0].values[d] && testdata[0].values[d].x || 0;
   return d3.time.format('%x')(new Date(dx))
 });

但是我正在努力了解它在做什么,并且无法在我的特定图表上实现。当前代码如下:
nv.addGraph(function() {
var chart = nv.models.multiBarChart()
            .stacked(true)

chart.xAxis
    .tickFormat(d3.format(',f'));

chart.yAxis
    .tickFormat(function(d) { return '$' + d3.format(',f')(d) });

d3.select('#chart1 svg')
    .datum(test_data2)
  .transition().duration(500).call(chart);

nv.utils.windowResize(chart.update);

return chart;
});

有人可以解释如何使其工作,更重要的是,为什么?感谢任何指导!

最佳答案

我打开赏金后就解决了这个问题(天哪!)

这是对我有用的
.tickFormat(function(d){return d3.time.format('%d-%b')(new Date(d));})
技巧是在创建轴后重新格式化nvd3的数据

关于d3.js - nvD3的新功能-如何使unix时间戳在x轴上显示为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13965916/

相关文章:

javascript - 如何在D3中导入json数据?

javascript - 在弧形内弯曲折线图

javascript - 相同时间戳的 nvd3 正值和负值

angularjs - 如何更改图例位置?

javascript - 我如何告诉 D3 使树状图垂直(自上而下)而不是从左到右?

javascript - D3 分区 - 单击时显示下一个级别

javascript - AngularJS 无法从服务加载数据

javascript - 如果没有,则需要在 nvd3 multiBarHorizo​​ntalChart 中垂直滚动。酒吧数量增加

javascript - 在现有的、分离的 SVG 元素上创建 d3 选择

javascript - 在 JavaScript 中,f 是什么意思?