Kendo StockChart使用阶梯线图不正确推断

时间:2014-01-19 21:00:29

标签: javascript kendo-ui

我们正在尝试使用Kendo UI模拟阶梯式面积图,以表示执行器在一段时间内行进的方向/位置(+1表示顺时针方向,-1表示逆时针方向)一天。致动器完成其转换的时间段不是恒定的。

代码包含在下面(或者请在http://jsfiddle.net/pirahawk/XT6CZ/15/随意使用以下jsfiddle以避免任何设置)。我们使用了Kendo Stockchart,因为它提供了一个互补的导航器组件,允许用户将图形限制在所需的时间段内。然而,我们在图表api中发现奇怪,特别是当数据集有很长的时间流逝时。如下例所示,我们开始接收输入间隔为1秒的输入。在图表上绘制这些图表可以达到我们期望看到的形状。然而,添加现在相隔几个小时的额外数据点(请取消显示所显示的数据点),我们发现图表api似乎以某种方式错误地推断了早期的数据点。

使用导航器将图表限制在较早的时间段(凌晨2点到凌晨2:30)之间,我们再次实现原始形状。然而,我们希望在不必这样做的情况下显示相同的形状(即,停止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);

1 个答案:

答案 0 :(得分:0)

首先,您在示例中使用了错误的baseUnit。它的属性categoryAxis而不是xAxis,似乎在这里不起作用。

您需要选择要在图表中显示的内容,当您显示较长时间段时,默认情况下,数据是汇总显示在您在baseUnit属性中定义的组中。关闭"将其关闭"您应该将其设置为最小可用选项:分钟。现在你将在你的图表中获得所有数据点,但它看起来更糟,只是看看我为你准备的JSFiddle,看看我的意思:http://jsfiddle.net/XT6CZ/18/

此致