I have a set of data in a local javascript variable that follows this pattern:
[
{ month: 'Jan 2012', series1: 800, series 2: 500 },
{ month: 'Feb 2012', series1: 700, series 2: 700 },
{ month: 'Mar 2012', series1: 900, series 2: 300 },
{ month: 'Apr 2012', series1: 800, series 2: 500, series3: 100 },
{ month: 'May 2012', series3: 200 },
{ month: 'Jun 2012', series3: 300 }
]
Notice that the data for series 3 doesn't start showing up until the April 2012 object. I try and create a line chart with the data above by doing the following:
$('#Chart').kendoChart({
theme: 'metro',
legend: { position: 'top' },
dataSource: { data: chartData},
seriesDefaults: {
type: 'line',
tooltip: {
visible: true,
font: '11px Trebuchet MS'
},
markers: { size: 6 },
missingValues: 'gap'
// Should be the default value anyway
},
series: [
{
field: 'series1'
name: 'Series1'
},
{
field: 'series2',
name: 'Series2'
},
{
field: 'series3',
name: 'Series3'
}
],
categoryAxis: {
field: 'month',
labels: {
font: ".85em Trebuchet MS"
},
majorGridLines: { visible: false }
},
valueAxis: {
min: 0,
max: 100,
majorUnit: 20,
majorGridLines: {
color: '#e7e7e7'
}
}
});
But it crashes when loading the chart every time with the following javascript error:
- <error>
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
-
n.extend._onDataChanged
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend._process
-
o.extend._change
-
e.extend.proxy.g
-
w.extend.trigger
-
o.extend.push
-
n.extend._bindSeries
It obviously looks like it is hitting some infinite loop. I tried to add series3: 0 to the first row in my dataset to just see what would happen so my data set looked like:
[
{ month: 'Jan 2012', series1: 800, series 2: 500,
series3: 0 },
{ month: 'Feb 2012', series1: 700, series 2: 700 },
{ month: 'Mar 2012', series1: 900, series 2: 300 },
{ month: 'Apr 2012', series1: 800, series 2: 500, series3: 100 },
{ month: 'May 2012', series3: 200 },
{ month: 'Jun 2012', series3: 300 }
]
That made the graph render but instead of having a gap for series3 for Feb 2012 and Mar 2012 it pushed the series3 values for Apr 2012 to Feb 2012, May 2012 to Mar 2012, and Jun 2012 to Apr 2012. Each series3 value was shifted down two months and no gaps were present.
Am I missing something? I would like series to to not start until it reaches data which should start in the April 2012 row.
Thanks for any suggestions in advance!