2013-04-08 124 views
0

我使用flot在我的网站上显示图表。Flot在xaxis中显示虚假数据

我使用此代码,但我得到一个虚假的xaxis。它显示:

04月04日12点04月05日0时04月05日12点04月0:00 4月6日12:00 04月07日0时04月07日12点00年04月08 0:00

但我只想要(4.4.2013 5.4.2013 6.4.2013 7.4 8.4.2013)。我希望没有重复和没有时间。

你能帮我吗。我在谷歌搜索了几个小时,但我找不到合适的解决方案。

<script> 
$(function() { 

    var  d1 = [], 
      d2 = [];   

    var dt1 = [[1365041353000,3], [1365127753000,5], [1365214153000,9], [1365300553000,15], [1365386953000,2]], 
     dt2 = [[1365041353000,1], [1365127753000,2], [1365214153000,3], [1365300553000,5], [1365386953000,7]]; 

    for(var i = 0; i < d2.length; i++) { 
     dt1.push([st + i * 3600000, parseFloat((d1[i]).toFixed(3))]); 
     dt2.push([st + i * 3600000, parseFloat((d2[i]).toFixed(3))]); 
    } 

    var data = [{ 
     data: dt1, 
     label: 'Test'  
    }, { 
     data: dt2, 
     label: 'Test1', 
     points: { show: false }, 
     lines: { lineWidth: 2, fill: false }, 
    }]; 

    Charts.line ('#line-chart', data, {yaxis: { 
     }, 
    xaxis: { 
    mode: "time", 
    timeformat: "%d.%m.%y" 
    } 
}); 

}); 
</script> 

我尝试这样做:

xaxis: { 
    mode: 'time', 
    timeformat: '%d.%m.%y', 
    tickFormatter: function (val, axis) { 
     var d = new Date(val); 
     d.getUTCDate() + "." + d.getUTCMonth() + "." + d.getUTCFullYear(); 
     } 

    } 

但我得到同样 12年4月4日:00Apr 5 0:00Apr 5 12:00Apr 6 0:00Apr 6 12:00Apr 7 0:00Apr 7 12:8 00Apr 0:00


我尝试这样做:

xaxis: { 
    mode: 'time', 
    timeformat: '%d.%m.%y', 
    tickFormatter: function (val, axis) { 
     var d = new Date(val); 
     d.getUTCDate() + "." + d.getUTCMonth() + "." + d.getUTCFullYear(); 
     } 

    } 

但我得到同样的 12年4月4日:00Apr 5 0:5 00Apr 12:00Apr 6 0:00Apr 6 12:00Apr 7 0:00Apr 7月12日:00Apr 8 0:00

+0

您使用的是哪种版本的Flot?另外,'Charts.line'从哪里来?通常情况下,Flot将其主要功能注册为$ .plot。 – DNS 2013-04-08 02:57:15

+0

我对jQuery使用Javascript绘图库,v。0.7 – TrivoXx 2013-04-08 10:39:58

+1

您也必须使用别的东西,因为Flot使用$ .plot,而不是Charts.line。由于您的选项看起来像被忽略,因此了解Charts.line的来源很重要。 – DNS 2013-04-08 11:33:33

回答

0

您可以使用tickFormatter xaxis这样:

tickFormatter: function (val, axis) { 
    var d = new Date(val); 
    return d.getUTCDate() + "." + d.getUTCMonth() + "." + d.getUTCFullYear(); 
} 

对于重复,它取决于你的应用程序的逻辑,你想如何处理它。您可以创建一个已经处理的值的映射,如果再次遇到它,则返回null或空值。

+0

嗨,感谢您的回复。我如何或在哪里必须将它集成到我的代码中? – TrivoXx 2013-04-08 08:35:05

+0

我错过了回归。将第二行更改为:'return d.getUTCDate()+“。” + d.getUTCMonth()+“。” + d.getUTCFullYear();' – tinker 2013-04-08 13:48:40