k-chart (pie) with aggregates
HTML
<script src="http://cdn.kendostatic.com/2012.1.322/js/kendo.all.min.js"></script>
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.1.322/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.1.322/styles/kendo.dataviz.min.css">
<div id="chart"></div>
JavaScript
var pictures = [
{ type: "JPG", len: 20, wid: 15, appr: 17.5, count: 2 },
{ type: "JPG", len: 22, wid: 17, appr: 12.5, count: 3 },
{ type: "JPG", len: 24, wid: 15, appr: 10.5, count: 1 },
{ type: "JPG", len: 22, wid: 4, appr: 17.5, count: 6 },
{ type: "PNG", len: 20, wid: 15, appr: 17.5, count: 4 },
{ type: "PNG", len: 25, wid: 7, appr: 9.5, count: 4 },
{ type: "PNG", len: 21, wid: 11, appr: 21.5, count: 1 }
];
var dataSource = new kendo.data.DataSource({
data: pictures,
group: {
field: "type",
aggregates: [
{ field: "len", aggregate: "sum" },
{ field: "wid", aggregate: "sum" }
]
}
});
//read dataSource to load the data
dataSource.read();
var seriesA = [],
seriesB = [],
categories = [],
items = dataSource.view(),
length = items.length,
item;
//create the chart series
for (var i = 0; i < length; i++) {
item = items[i];
// This is what I want to do..
//seriesA[0].push(item.aggregates.len.sum);
//seriesA[1].push(item.aggregates.wid.sum);
// or
//seriesA.push([{item.aggregates.len.sum},{item.aggregates.wid.sum}]);
seriesA.push(item.aggregates.wid.sum);
seriesB.push(item.aggregates.len.sum);
categories.push(item.value);
}
//initialize the chart
$(document).ready(function() {
$("#chart").kendoChart({
dataSource: dataSource,
seriesDefaults: {
type: "bar",
//stack: true
//currentField: "size",
//targetField: "wid"
},
series: [
//{name: "size", data: seriesA, currentField: "len",targetField: "wid"},
{name: "length", data: seriesA},
{name: "width", data: seriesB}
],
categoryAxis: {
categories: categories
},
valueAxis: {
},
tooltip: {
visible: true
}
});
});