d3.js默认axis.tickFormat为24小时制

Joe*_*oel 7 d3.js

我真的很喜欢axis.tickFormat在绘制事物时的默认行为,只是像这样创建我的x轴:

var xAxisBottom = d3.svg.axis().scale(xScale);
Run Code Online (Sandbox Code Playgroud)

我正在使用画笔功能,因此用户可以沿x轴缩放,因此它的值必须相应地更新.如果用户查看整年的数据,那么带月份的滴答是好的.如果用户查看一天中的数据,则小时和分钟的刻度是好的.等等.

好处是轴的默认行为是这样的.不好的是它显示了上午/下午的小时数,我想将其改为24小时制.

我知道我可以根据画笔的当前跨度设置我自己的tickFormat,但在这种情况下我不知道如何得到类似下图的图片,其中混合了不同的格式.

在此输入图像描述

那么,是否有一种简单的方法来获得24小时而不是AM/PM?

Lar*_*off 8

在"调用单行代码"中并不容易,但您可以轻松地自己编写时间格式.请看这里的例子.关键的想法是你有一个日期格式列表和一个过滤函数,如果要使用相关的格式,给定日期时返回true.在您的情况下,您只需要两个级别,一个显示日期(如果日期是午夜)或时间(如果日期是中午12).