我正在尝试在KendoUI中的单个折线图上显示两个系列。
系列中的日期不匹配(即系列二在系列一之后开始,在系列一之前结束)。但是,KendoUI会从图表的开头开始渲染这两个系列。
我为demonstrate the issue创建了一个简单的jsfiddle,总结如下:
HTML:
<div id="chart" />
CSS:
#chart
{
width: 400px;
height: 280px;
}
JS:
$(function () {
var dataSource = new kendo.data.DataSource({
data: [
{ series: 'Series 1', date: new Date(2013, 04, 01), count: 1 },
{ series: 'Series 1', date: new Date(2013, 04, 02), count: 3 },
{ series: 'Series 1', date: new Date(2013, 04, 03), count: 5 },
{ series: 'Series 1', date: new Date(2013, 04, 04), count: 3 },
{ series: 'Series 1', date: new Date(2013, 04, 05), count: 1 },
{ series: 'Series 2', date: new Date(2013, 04, 02), count: 5 },
{ series: 'Series 2', date: new Date(2013, 04, 03), count: 3 },
{ series: 'Series 2', date: new Date(2013, 04, 04), count: 5 }
],
group: {
field: 'series'
},
sort: {
field: 'date',
dir: 'asc'
},
schema: {
model: {
fields: {
date: {
type: 'date'
}
}
}
}
});
dataSource.read();
$('#chart').kendoChart({
title: {
text: 'Date Demonstration'
},
dataSource: dataSource,
seriesDefaults: {
type: 'line'
},
series: [{
field: 'count',
data: []
}],
valueAxis: {
line: {
visible: false
},
labels: {
step: 2,
template: function (value) {
return value.value % 1 === 0 ? value.value : ' ';
}
}
},
categoryAxis: {
field: 'date',
type: 'date',
labels: {
template: function (value) {
return value.value.getDate();
}
}
},
legend: {
position: 'bottom'
}
});
});
图表的第二个系列应该从'2'开始,而不是从'1'开始。
任何人都知道如何解决这个问题?这是KendoUI中的错误吗?
答案 0 :(得分:2)
更新:Kendo回应了我们随后开通的支持请求:
折线图就是这样的。您有一些类别,然后为每个类别提供值。在您的情况下,我建议您使用散点线图,或者您需要填充第二个系列中的缺失值,并将null作为值。
因此我认为这是一个wontfix错误,因为在这种情况下我告诉图表类别轴是一个日期;然后从数据源中获取字段以获取这些日期。图表应该能够在正确的日期类别中将这些值绘制到图表中。