我真的很喜欢axis.tickFormat的默认行为,它随着时间的推移绘制事物,并像这样创建我的x轴:

var xAxisBottom = d3.svg.axis().scale(xScale);

我正在使用笔刷功能,以便用户可以沿x轴缩放,因此它的值必须相应地更新。如果用户查看整年的数据,则以月为单位的滴答作响是不错的选择。如果用户查看一天中的数据,则用小时和分钟打勾是不错的选择。等等。

好消息是轴的默认行为是这样的。不好的是,它以AM/PM显示小时,我想将其更改为24小时制。

我知道我可以根据画笔的当前跨度设置自己的tickFormat,但是在那种情况下,我不知道如何获得如下图所示的图像,其中混合了不同的格式。

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

最佳答案

不像“调用一行代码”那样简单,但是您可以轻松地滚动自己的时间格式。有关示例,请参见here。关键思想是您有一个日期格式列表和一个过滤器函数,给定一个日期,如果要使用关联的格式,则返回true。在您的情况下,您仅需要两个级别,一个级别即可显示日期(如果日期是午夜)或时间(如果日期是中午12)。

关于d3.js默认axis.tickFormat设置为24小时制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15654000/

10-12 00:19
查看更多