【问题标题】:jQuery Flot time-based axis panning issuejQuery Flot 基于时间的轴平移问题
【发布时间】:2013-04-14 07:19:41
【问题描述】:

我一直在修补,用 Flot 和它的一些插件制作了一个小图表。目的是提供一个跟踪基础体温的图表,每天的日期在 x 轴上,度数在 y 轴上。平移将移动 x 轴,因此您可以查看以前的日期等,单击将产生一个新点,捕捉到网格。

平移不移动时基于时间的轴上的网格。当我将轴类型更改为正常时,它会发生。我真的很想让整个网格移动,因为现在线系列有点“漂浮”在网格上。有谁知道如何使这项工作?我是否遗漏了选项中的某些内容?

这比看到更难解释,所以 fsfiddle 提供:http://jsfiddle.net/jorgthuijls/caM3q/1/

触发行为变化的是 x 轴选项上的选项 mode: 'time'(小提琴的第 24 行)。

需要注意的代码位:

        xaxis: {
            show: true,
            min: firstDay,
            max: lastDay,
            ticks: 31,
            mode: 'time',
            timezone: 'browser',
            timeformat: '%d. %m'
        },

把它改成

        xaxis: {
            show: true,
            min: firstDay,
            max: lastDay,
            ticks: 31,
        },

看看添加几个点后移动图形会发生什么。

非常感谢!

【问题讨论】:

    标签: jquery flot panning


    【解决方案1】:

    这是两件事的结合:

    1. 我们刚刚修复了 0.8.0 中的一个错误,因此如果您尝试使用 master 的 jquery.flot.time.js,您会立即注意到改进。

    2. 即使进行了修复,滴答声仍然会跳动一点。那是因为您有足够大的范围,刻度仅每 3 天出现一次。然而,在内部,报价生成器仍将一天视为最小间隔。因此,它会在您平移一天后立即重新计算,即使这只是刻度间隔大小的三分之一。

    您通常可以通过分配适当高的 minTickSize 来解决该问题; [5, 'day'],例如,让滴答生成器相信它不需要重新计算。当您提前知道情节的尺寸时,这种方法效果最好。

    【讨论】:

    • 谢谢!这似乎确实解决了滚动网格问题。我打算完整显示一个月,大约 30 条网格线,每天一条。那会是minTickSize: [1,'day']吗?直到知道我刚刚将刻度数设置为 30。
    • 使用 minTickSize Flot 通常会选择更大的间隔。如果您改为使用tickSize: [1, "day"],它将更接近您想要的。不过,请确保您了解 30 个刻度占用了多少空间。在 400px 宽处,8-10 个刻度是可以舒适地适应的最大值;要适合 30,您需要至少 1200 的宽度。
    • 是的,我已经选了 1200,这很不错。我调整了小提琴以使其更适合小框架。如果结果太大,我可能会将其减少到两周。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多