我已收到客户关于使用折线图的项目燃尽图表的请求。问题是他们希望x轴上的日期格式化为特定方式mmm dd-dd / yy(例如11月18-24 / 12),其中18-24是一周(18日到24日)。是否可以在D3中创建自定义日期格式,如果不是最好的方法来实现这一点?
答案 0 :(得分:3)
是的,您可以创建自定义日期格式。
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。
答案 1 :(得分:0)
是的,这是可能的。请参阅the documentation on d3.time.format
。
答案 2 :(得分:0)
我使用javascript对日期进行排序/格式化,然后在非常规格式中将值发送到D3。
我使用过date.js。它是一个较旧的js库,但它完成了工作,并提供了多种格式。
答案 3 :(得分:-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行附近。不是最干净的实施,但它确实有效。