2014-04-22 12 views
1

我使用Dygraphs繪製CSV文件中的數據。日期是UNIX時間戳。使用Dygraphs格式化日期的問題

目前我解析和格式化這樣的日期:

... 
    axes: { 
     x : { 
     valueFormatter: Dygraph.dateString_, 
     ticker: Dygraph.dateTicker 
     } 
    }, 
    ... 

下面是一個典型的CSV文件的第一行:

x,ATLAS.HLTSV.AvailableCores.DF.HLTSV.Events 
1392052678784,0.0 
1392052703784,0.0 
1392052708784,30.0 
1392052713784,845.0 
1392052718784,1313.0 
1392052723784,1313.0 
1392052728784,1431.0 
... 

這給了我以下結果:

graph

渲染的日期是正確的,但我有2個問題

  • 首先日期過長,並明確突破圖形佈局。

  • 其次,粒度是固定的。我會把它想改基礎上的縮放級別,如下面的例子:http://dygraphs.com/tests/demo.html

如何解決這一問題?

+0

你能分享一個演示鏈接嗎?我很難想象爲什麼會發生。此外,您爲ticker和valueFormatter設置的值應該是默認值。你爲什麼設置它們? – danvk

+0

@danvk關於'ticker'和'valueFormatter'的值:如果我沒有設置它們,那麼時間戳將不顯示任何格式!像這樣:http://i.stack.imgur.com/n9jmz.png。設置'axisLabelFontSize:13'固定y標籤格式,它不會被切斷。問題仍然是y軸。我添加了一個CSV格式的示例,如果它沒有清除足夠的東西,我會從應用程序中提取演示... – MasterScrat

+0

我的意思是* x軸*仍然存在問題,即日期仍然存在太長,打破布局。 – MasterScrat

回答

0

雖然我沒有找到如何格式化日期客戶端在你描述的原始情況下,似乎很好的解決方法是首先格式化日期服務器端。不是直接向Dygraphs提供時間戳,而是爲日期字段傳遞「Y-m-d H:i:s」字符串,並且時間標籤在最終圖中變得簡短易讀。這也意味着,如果你希望數據源是一個csv文件,你必須首先預先處理它的服務器端。