2013-04-14 67 views
3

我有一系列事件的數據庫表,這些事件發生時的日期。現在我想顯示每個月的事件數量並以折線圖形式顯示。 我通過php獲取數據,並使用data.addrow在循環中生成js代碼谷歌折線圖如何不插入缺失數據

現在,這工作正常,但如果有一個月沒有事件,它不會被添加爲一行,行會只需插入缺失的月份。因此,例如1月5日的事件,2月0日和3月5日的事件,將創建一個從一月到三月的水平線,使其看起來像2月份的5個事件。

我該如何讓這條線在「空」的月份下降到零?

我是否需要使用null填充空行/月份?這似乎不太實際。

+0

有幾種方法可能使用日期值實現折線圖。您能否提供一個演示此問題的示例,可以在jsfiddle中提供,也可以提供可在GViz操場中使用的drawVisualization函數:https://code.google.com/apis/ajax/playground/?type=visualization#line_chart – dlaliberte

回答

2

如果您希望該行下降到零,那麼您就是以不同的方式進行插值。谷歌給你使用interpolateNulls選擇兩種方式來處理空值(空):

  1. 會猜測值(圖表中的當前行爲)
  2. 將離開之間所屬在空行數據點(不是你想要的)中斷行

要獲得所有空值顯示爲零,您需要通過for循環遍歷數據並將任何空值更改爲0 。就像下面的代碼。

for (i = 0; i < data.getNumberOfRows(); i++) { 
    if (data.getValue(1, i) == null) 
    data.setValue(1, i) = 0 
} 

上面的代碼沒有經過測試,我不知道你的數據是如何設置的,所以我沒有花太多的時間去檢測它(我不知道有多少列等數據有,你可以根據需要進行調整和測試)。