2013-04-08 167 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