2014-01-19 81 views
0

我們試圖用Kendo UI模擬階梯面積圖來表示執行器在一段時間內行進的方向/位置(+1表示順時針,-1表示計數器在一天的過程中)。執行機構完成其轉換的時間不是固定的。Kendo StockChart帶有階梯折線圖的不正確推斷

代碼包含在下面(或者請隨時使用下面的jsfiddle在http://jsfiddle.net/pirahawk/XT6CZ/15/以避免任何設置)。我們使用了Kendo Stockchart,因爲它提供了一個互補的導航器組件,允許用戶將圖形限制在所需的時間段。但是,我們發現圖表api中有些古怪,特別是當數據集有大量時間流逝時。如下面的例子所示,我們開始接收輸入,它們之間的間隔爲1秒。在圖表上繪製這些圖表可以達到我們期望看到的形狀。然而,添加現在相隔幾個小時的其他數據點(請取消註釋所示的數據點),我們發現圖表api似乎以某種方式錯誤地推斷了較早的數據點。

當使用導航器將圖表限制在較早的時間段(凌晨2點到2點半之間)時,我們再次實現原始形狀。然而,我們想要顯示相同的形狀而不必執行此操作(即,停止api以在數據點之間具有較大間隔的情況下外推數據點)。任何幫助,建議在這個問題將不勝感激

var dataForSource = [{ 

    date: new Date("December 16, 2013 02:06:00 AM"), 
    Count: 0 
}, { 
    date: new Date("December 16, 2013 02:07:00 AM"), 
    Count: 1 
}, 

{ 
    date: new Date("December 16, 2013 02:09:00 AM"), 
    Count: 0 
}, { 
    date: new Date("December 16, 2013 02:09:15 AM"), 
    Count: -1 
}, 

{ 
    date: new Date("December 16, 2013 02:09:45 AM"), 
    Count: 0 
}, 


{ 
    date: new Date("December 16, 2013 02:10:00 AM"), 
    Count: -1 
}, { 
    date: new Date("December 16, 2013 02:15:00 AM"), 
    Count: 0 
} 


//Uncomment these out to see issue 
/*      
, { 
    date: new Date("December 16, 2013 04:10:01 PM"), 
    Count: -1 
} 

, { 
    date: new Date("December 16, 2013 11:55:00 PM"), 
    Count: 0 
} */ 
]; 


var staticDataSource = new kendo.data.DataSource({ 
    type: "line", 
    data: dataForSource 
}); 

function createChart() { 
    $("#chart").kendoStockChart({ 
     dataSource: staticDataSource, 

     dateField: "date", 

     series: [{ 
      type: "line", 
      style: 'step', 
      //missingValues: "interpolate", 
      field: "Count", 
      categoryField: "date" 
     }], 

     xAxis: { 
      baseUnit: "seconds" 
     }, 


     navigator: { 
      series: { 
       type: "line", 
       style: 'step', 
       field: "Count" 
      }, 

      xAxis: { 
       baseUnit: "hours" 
      }, 
     } 

    }); 
}; 

$(document).ready(createChart); 

回答

0

首先,你在你的例子中使用錯誤的baseUnit。它的財產categoryAxis不是xAxis,似乎在這裏不起作用。

你需要選擇你是什麼在圖表中想要顯示,當你表現出很長一段時間,在默認情況下的數據彙總中,你在baseUnit屬性來定義集團向外界展示。要「關閉」,您應該將其設置爲最小可用選項:分鐘。現在,你會擁有所有的數據點在圖表中,但它看起來更糟糕,只是在偷看什麼的jsfiddle我爲你準備了明白我的意思:http://jsfiddle.net/XT6CZ/18/

問候