2014-03-26 74 views
1

我有我的工作曲線非常接近完美。我通過PHP抓取其數據和人力車返回JSON數據,一個問題卻是,我不能讓十二月份展現出來的圖形。人力車月基於X軸問題

我需要顯示全年的結果。所以,即使有一個爲十二月沒有記錄我需要證明爲0

什麼我做的是這樣的基本前提(我沒有使用在實踐中的strtotime)

array 
(
    "Jan"=>array 
    (
     "timestamp"=>strtotime('01-01-'.$this->year), 
     "records"=>(array)timestamps 
    ) 
    //do for all months 
) 

從這的月記錄的金額是該月的記錄數組的長度,我也有那個月的確切時間戳。

然後當我json_encode這個數組時,我有一個JS對象,我可以迭代創建Rickshaw系列,我將timestamp鍵作爲其x軸值,而records.length作爲其y軸值。

這是工作得很好,但於12月這裏是什麼樣的圖表目前看起來像

http://i.imgur.com/bzbELHW.png

我不明白的是,每隔一個月工作按預期的圖像。如果其記錄數組的長度爲0,它繪製它爲0。出於某種原因,12月份只是沒有被拾起。起初我以爲這是一個時區差異,但是這是怎麼了實際得到的時間戳每月

protected function getUnixTime($date_string) 
{ 
    $date = new DateTime($date_string , new DateTimeZone('GMT')); 
    return $date->format("U"); 
} 

並使用該工具http://www.epochconverter.com/他們看起來是正確的檢查所有的時間戳。 FYI這裏是我如何設置人力車

var graph = new Rickshaw.Graph(
       { 
        element:document.querySelector(scope.conf.chart_element), 
        width:scope.conf.chart_width, 
        height:scope.conf.chart_height, 
        renderer:scope.conf.chart_type, 
        series: scope.defaults.graph_series_data.reverse() 
       }), 
    time = new Rickshaw.Fixtures.Time(), 
    months = time.unit('months'), 
    x_axis = new Rickshaw.Graph.Axis.Time(
       { 
        graph: graph, 
        timeUnit:months, 
       }), 
    y_axis = new Rickshaw.Graph.Axis.Y(
       { 
        graph: graph, 
        orientation: 'left', 
        tickFormat: Rickshaw.Fixtures.Number.formatKMBT, 
        element: document.getElementById('y_axis'), 
       }), 

    legend = new Rickshaw.Graph.Legend(
       { 
        element: document.querySelector('#legend'), 
        graph: graph 
       }); 


graph.render(); 

任何幫助將不勝感激,這一個讓我難住。

回答

1

呃......是的,它實際上是有所有沿圖只是需要一個比特填充的右手邊,以顯示打勾字母。這總是最簡單的解決方案。

如果你有這個問題,嘗試添加一些填充到圖形的右側像

padding:{top:0.01 , right:0.007 , bottom:0 , left:0} 

這應該整理出來。