jquery - flot - 显示没有间隙的时间轴

标签 jquery jquery-plugins flot

我正在尝试自定义 jQuery Flot 以消除时间轴上点之间的间隙。看上面的图片:

broken flot

它显示了两天的数据,我敢打赌你会发现晚上的数据。我想做的就是消除图表中间这个令人讨厌的间隙。有什么建议如何做到这一点吗?

最佳答案

太糟糕了,我不能接受评论作为答案,因为马克链接中乔治·罗伯茨的回答工作顺利。

所以我要做的就是将浮点的模式从“时间”更改为空,然后模拟时间轴。

我创建了两个数组:第一个包含图表数据,第二个包含时间戳:

for (var i=0; i<json.length; i++ ) {
    dotsData.push( [i, json[i].value] );
    ticks.push( json[i].date );
    }                       
}

时间轴仿真:

// flot options
... xaxis: { tickFormatter: function(val) { return formTicks(val, ticks) } } ...

// formTicks function
function formTicks(val, ticksArr) {
    var tick = ticksArr[val];

    if ( tick != undefined ) {
        tick = new Date( tick );

        var hours = tick.getHours(),
            minutes = tick.getMinutes();

            tick = hours+':'+minutes;
    }
    else { tick = '' }

    return tick
}

它解决了问题,但是很难区分某一天和另一天,所以我添加了标记:

var markings = [],
    firstDay = new Date( ticks[0] ).getDate();

    for (var i=1; i<ticks.length; i++) {
        var loopDay = new Date( ticks[i] ).getDate();
        if ( loopDay != firstDay ) {
            var marking = {
                color: '#000000',
                lineWidth: 1,
                xaxis: { from: i, to: i }
            }

        markings.push( marking )

        firstDay = loopDay; // loop through all days
    }
}

// flot options
grid: { markings: markings }

结果:

Fine looking flot

关于jquery - flot - 显示没有间隙的时间轴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7204232/

相关文章:

asp.net-mvc-3 - MVC3 中的 SquishIt ForceRelease 不能正确缩小 JQuery 插件

javascript - Flot 堆叠条形图不堆叠

javascript - 图表 : Doesn't work in IE 8

javascript - 所选图像从两个不同的下拉列表中一起更改和显示

javascript - JQuery window.resize 不断地在我的 HTML 前面添加不止一次

javascript - Jquery Flot - 随着用户缩放使数据更加精细

javascript - Rails 4 中的 float 入门

jquery - Ajax 分页 - 启用后退按钮

javascript - 基于 JavaScript 或 jQuery 中的条件逻辑向页面添加 HTML

javascript - 我应该将 Jquery 文件放在我的 Web 服务器上,还是仅通过 jquery.com 在我的 PHP 文件中引用它们,哪个更好?