0

我收到了客户的请求,要求使用折线图制作项目燃尽图。问题是他们希望 x 轴上的日期以特定方式格式化 mmm dd-dd/yy(例如 Nov 18-24/12),其中 18-24 是一周(18 日到 24 日)。是否可以在 D3 中创建自定义日期格式,如果没有,最好的方法是什么?

4

4 回答 4

4

是的,您可以创建自定义日期格式。

var xAxis = d3.svg.axis()
    .scale(x)
    .tickFormat(customDateFormat);

function customDateFormat(date) {
  // figure out what week the current date is in
  // and return the appropriate string
}

如果你想更高级,你可以像 d3.js 实现内置格式化程序一样实现一个完整的格式化程序。有关示例,请参见http://bl.ocks.org/4149176 。

于 2012-12-10T02:56:16.770 回答
0

是的,这是可能的。请参阅上的文档d3.time.format

于 2012-12-05T15:36:28.310 回答
0

过去,当涉及非常规格式时,我使用 javascript 对日期进行排序/格式化,然后将值发送到 D3。

我用过date.js。它是一个较旧的 js 库,但它可以完成工作并且提供多种格式。

于 2012-12-05T15:39:37.550 回答
-1

我创建了自己的格式说明符“%o”

o: function(d) {
    var weekInSeconds = 6 * 86400000;
    var eowDate = new Date(d.getTime() + weekInSeconds);
    return d3_time_zfill2(eowDate.getDate());
},

在 d3.v2.js 文件中的第 6824 行附近。不是最干净的实现,但它有效。

于 2012-12-13T16:15:09.783 回答