0

有没有办法让 x 轴从显示小时切换到例如工作日、月份..缩小时?

目前我的x轴配置如下:

xaxis: {
    mode: "time",
    minTickSize: [1, "second"],
    timeformat: "%H:%M:%S",
}

我的默认图表看起来不错,但是当我缩小足够多的时间时,xaxis 上的标签只会显示“00:00”。如何更改以timeformat使日期也包含在内?例如Tue 27 00:00或类似的。

这是一个图形被缩小很多的示例(显然我需要远程一些数据点以使其看起来更平滑..)

例子

4

2 回答 2

0

您可以使用标准说明符添加日期,例如 %Y-%m-%d。完整列表可以在时间序列数据部分下的 API 文档中找到。

要根据范围更新格式,即放大时显示 HMS 但缩小时显示 YMD,比较棘手。您需要监听“plotzoom”事件并检查范围以查看格式是否需要更改。如果是这样,请使用 getOptions() 检索和更新绘图的选项,然后调用 setupGrid & draw 以使用新格式重新绘制绘图。

于 2013-02-27T14:12:58.000 回答
0

我通过为 X 轴制作自定义 tickFormatter 解决了这个问题:

在您的 xaxis 选项中放置:

xaxis: {
    mode: "time",
    tickFormatter: customXAxisFormatter,
    ...
}

那么您的 customXAxisFormatter 可能是例如。:

function customXAxisFormatter(val, axis)
{
    var d = new Date(val);

    // If time difference is more than 24 hours
    if ((axis.max - axis.min) > (24*3600*1000))
        return d.strftime("%a<br>%H:%M");
    else
        return d.strftime("%H:%M");
}

我希望这有帮助 :)

于 2014-11-13T13:47:50.440 回答