我们正在尝试使用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);
答案 0 :(得分:0)
首先,您在示例中使用了错误的baseUnit。它的属性categoryAxis
而不是xAxis
,似乎在这里不起作用。
您需要选择要在图表中显示的内容,当您显示较长时间段时,默认情况下,数据是汇总显示在您在baseUnit
属性中定义的组中。关闭"将其关闭"您应该将其设置为最小可用选项:分钟。现在你将在你的图表中获得所有数据点,但它看起来更糟,只是看看我为你准备的JSFiddle,看看我的意思:http://jsfiddle.net/XT6CZ/18/
此致