2011-07-05 37 views
1

我想要绘制在海军报一些数据,应该及时模式显示x-axis。在海军报参考API并不表明minTickSize可以“周”接受为单位,所以我指定的单位为“天”与7值:日期显示不正确的周线图上的数据在海军报

minTickSize: [7, "day"], 

这将显示刻度大小分开7天在一些蜱中,相隔约8-9天。下面是该不一致蜱的例子:http://jsfiddle.net/UEePE/583/

我知道,图表也没有绘制简单的线条,我期待。仍在努力寻找原因。当我从xaxis中移除除了mode:time之外的所有选项时,它似乎可以工作,但在添加其他选项时不起作用。

任何帮助就如何使海军报添加蜱/间隔1周,以及如何使图表绘制其实在这种情况下,行7天的赞赏。

谢谢!

+0

想通了,为什么图表不显示..我有毫秒添加不正确。因此,图表现在可以在我的开发环境中正确显示,但图表仍然具有不正确的刻度标记,因为它们之间的间隔不是完全相隔7天。该屏幕截图是在http://imageshack.us/photo/my-images/684/flotchart.png/ 然而,在的jsfiddle图表不显示在所有。更新后的链接是:jsfiddle.net/UEePE/583。也在上面的原始帖子中更正了。 – Harman

回答

6

首先。 Flot的数据参数是一系列数组。每个序列都是一个点的数组,每个点是一个由两个值组成的数组:x和y。所以你的数据应该是这样的:

var data = [ [ 
    [1301634000000, 315.71], //Apr 1, 2011 
    [1302238800000, 209.21], //Apr 8, 2011 
    [1302843600000, 420.36], //Apr 15 
    [1303448400000, 189.86], //4/22 
    [1304053200000, 314.93], //4/29 
    [1304658000000, 279.71], //5/6 
    [1305262800000, 313.34], //5/13 
    [1305867600000, 114.67], //5/20 
    [1306472400000, 315.58] //5/27 
] ]; 

Next Flot将你的[7,“day”]转换为[0.25,“month”]。它只接受很多minTickSize的值(在源代码中搜索“spec”)。

这意味着你必须提供刻度值自己。最简单的办法就是把你的x轴的值从第一个数据系列,创建一个蜱阵列,并传递到x轴的散列:

var ticks = []; 
for (var i = 0; i < data[0].length; i++) { 
    ticks.push(data[0][i][0]); //corrected the missing closing bracket here.. 
} 

然后

$.plot($("#placeholder"), data, { 
    xaxis: { 
    mode: "time", 
    ticks: ticks, 
    timeformat: "%m/%d", 
    min: (new Date(2011, 2, 31)).getTime(), 
    max: (new Date(2011, 4, 31)).getTime() 
    }, 
    ..etc.. 
+0

谢谢!我在你的文章中纠正了一个缺失的左括号,它在我的Dev中完美运行。环境。仍然不工作的jsfiddle虽然.. – Harman

+0

工作正常,我在[的jsfiddle(http://jsfiddle.net/JMBucknall/eQ2eb/) – jmbucknall

+0

我用这一点,但性能是下来的时候,我用这个。你能告诉我任何其他解决方案吗? –