所以我有一個highcharts設置更換空,我希望能夠與0Highcharts - 0
更換空在的jsfiddle你可以看到18和19(週末)沒有人做過任何搜索,但它進行下一步。
是否有可能用0代替這些空值,而不是在每一行中都沒有那麼美觀的間隙? 我懷疑我可能不得不使用formatter
標籤來執行此操作。
所以我有一個highcharts設置更換空,我希望能夠與0Highcharts - 0
更換空在的jsfiddle你可以看到18和19(週末)沒有人做過任何搜索,但它進行下一步。
是否有可能用0代替這些空值,而不是在每一行中都沒有那麼美觀的間隙? 我懷疑我可能不得不使用formatter
標籤來執行此操作。
Altough Higcharts有connectNulls
選項,它將直接連接前一個值和下一個值。我能想到的唯一方法是對數據進行預處理,將其附加到系列和轉換空值爲零,這樣纔讀值:
// var seriesdatagorfromsomewhere
for (var i = 0; i < seriesdatagorfromsomewhere.length; i++) {
if (seriesdatagorfromsomewhere[i][1] === null) {
seriesdatagorfromsomewhere[i][1] = 0;
}
}
然後追加的數據與平時一樣的系列。
如果你的代碼不生成空值,你可以通過兩種方式來完成:按照某種方式檢查服務器日期中的點,並檢查系列之間的點。
這個想法是逐個處理點,得到每一個(日期)的第一個參數。當遇到不存在的日期時,只需將其添加爲零值即可。當你到達停止日期時(從服務器或你提出的顯示信息的請求,你應該停止processng信息)
另一個是相同的方法,但當任何系列沒有價值時停止。與此有關的一個問題是,如果任何系列具有周末的數據,那麼您將不會爲其創建任何零。
實施例:
// var seriesdatagorfromsomewhere
// var stopdate (from server/request or highest date value from all series)
// var startdate (from server/request or lowest date value from all series)
// var currentseriespos = 0;
while (startdate <= stopdate) {
var date = seriesdatagorfromsomewhere[currentseriespos][0];
if (startdate != date) {
seriesdatagorfromsomewhere.splice(currentseriespos, [startdate, 0]);
}
startdate = increaseOneDay(startdate);
currentseriespos++;
}
未測試。當然循環不會像這樣工作,你會得到一個無限循環,但你明白了。
啊,謝謝。您所製作的代碼在我感激不盡的情況下不起作用。該系列數據不包含任何空值的條目,因此無法進行比較。它只是忽略它並轉到下一組數據。 數據來自數據庫,在搜索完成後生成。然後它通過運行SQL查詢對它們進行計數,按名稱和日期對它們進行分組,以便每天計算一次。因此,檢查是否在連續的每一天,如果沒有數據,生成0是非常複雜的。我將不得不查看是否有可能在後端的某處添加0代。 – Slopax
哦,我明白了。然後我認爲我有另外兩個前端解決方案。去編輯。 –
@Slopax編輯。 –