2014-07-07 154 views
0

我有一個散點圖,如下所示(編輯以顯示我想要的)。我有一段時間的數據(藍點),但沒有包含我想用0(黑點)填寫的數據的日子。在high charts docs中似乎沒有這樣做的功能。填充數據最好的方法是什麼?我的圖表是使用JSON製作的。Highcharts用0填充散點圖數據

我的JSON格式爲{x:value,y:value},x是以毫秒爲單位的日期,y是實際值。

[{"x":1398952144380,"y":3},{"x":1401976144380,"y":30},{"x":1402062544380,"y":9},{"x":1402148944380,"y":11},{"x":1402235344380,"y":30},{"x":1402321744380,"y":23},{"x":1402408144380,"y":1},{"x":1402580944380,"y":28},{"x":1402667344380,"y":32},{"x":1402753744380,"y":17},{"x":1402840144380,"y":35},{"x":1402926544380,"y":39},{"x":1403012944380,"y":6},{"x":1403185744380,"y":30},{"x":1403272144380,"y":27},{"x":1403358544380,"y":14},{"x":1403444944380,"y":24},{"x":1403531344380,"y":16},{"x":1403617744380,"y":9},{"x":1403790544380,"y":2},{"x":1403876944380,"y":21},{"x":1403963344380,"y":46},{"x":1404049744380,"y":33},{"x":1404136144380,"y":38},{"x":1404222544380,"y":6},{"x":1404308944380,"y":28},{"x":1404395344380,"y":34},{"x":1404481744380,"y":28},{"x":1404568144380,"y":16},{"x":1404654544380,"y":25},{"x":1404740944380,"y":9},{"x":1404913744380,"y":13},{"x":1405000144380,"y":19},{"x":1405086544380,"y":28},{"x":1405172944380,"y":20},{"x":1405259344380,"y":23},{"x":1405345744380,"y":12},{"x":1405518544380,"y":20},{"x":1405604944380,"y":22},{"x":1405691344380,"y":30},{"x":1405777744380,"y":27},{"x":1405864144380,"y":25},{"x":1405950544380,"y":16},{"x":1406123344380,"y":13},{"x":1406209744380,"y":23},{"x":1406296144380,"y":20},{"x":1406382544380,"y":31},{"x":1406468944380,"y":31},{"x":1406555344380,"y":3},{"x":1406728144380,"y":12},{"x":1406900944380,"y":13},{"x":1406987344380,"y":22},{"x":1407073744380,"y":22},{"x":1407246544380,"y":8}] 

我寧願在Java中做這個服務器端。

enter image description here

+0

對於每一天返回數據 - 如果當天沒有數據返回0,無論您使用什麼來保存數據。不知道你的數據如何/存儲在哪裏,這是我能做的最好的。 – wergeld

+0

@wergeld,我在使用的數據上添加了更多 –

+0

存儲的數據是如何表達的。你用什麼來創建你的jSON? – wergeld

回答

1

可以擴展點陣列這樣:http://jsfiddle.net/7VNwk/4/

var interval = 172800000, //interval between two points - two days? 
     dataLength = data.length, 
     startingPoint = data[dataLength-1].x - 162 * 24 * 3600 * 1000, // half year from last point 
     extendedData = [], 
     i = 0; 

    while(i < dataLength) { 
     var actual = data[i]; 
     if(startingPoint < actual.x) { 
      extendedData.push({x: startingPoint, y: 0}); 
     } else { 
      extendedData.push(actual); 
      i++; 
     } 
     startingPoint += interval; 
    } 

    $('#container').highcharts({ 
     xAxis: { 
      type: 'datetime' 
     }, 
     series: [{ 
      type: 'scatter', 
      data: extendedData 
     }] 
    }); 

當然,這取決於兩點之間的時間間隔。從我的數據中可以看出,這大概是2天。