k-chart with aggregates
by valchev
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">
<link rel="stylesheet" href="http://cdn.kendostatic.com/2012.1.322/styles/kendo.default.min.css">
<div id="chart"></div>
<div id="grid"></div>
CSS
#chart {
height: 120px;
width: 60%;
margin: 20px auto;
}
JavaScript
var pictures = [
{ type: "JPG", size: 10 },
{ type: "JPG", size: 20 },
{ type: "JPG", size: 12 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 20 },
{ type: "JPG", size: 20 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 12 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 10 },
{ type: "JPG", size: 12 },
{ type: "JPG", size: 20 },
{ type: "JPG", size: 20 },
{ type: "PNG", size: 10 },
{ type: "PNG", size: 10 },
{ type: "PNG", size: 10 },
{ type: "PNG", size: 20 },
{ type: "PNG", size: 20 },
{ type: "PNG", size: 12 },
{ type: "PNG", size: 10 },
{ type: "PNG", size: 20 },
{ type: "PNG", size: 20 },
{ type: "PNG", size: 12 },
{ type: "PNG", size: 12 },
{ type: "PNG", size: 10 }
];
var dataSource = new kendo.data.DataSource({
data: pictures,
change: function() {
if(this.group().length != 0) {
var series = [],
items = dataSource.view(),
length = items.length,
item;
//create the chart series
for (var i = 0; i < length; i++) {
item = items[i];
series.push({ name: item.value, data: [item.aggregates.size.count]})
}
createSeries(series);
} else {
createSeries([{name: "no aggregates", data: [0]}]);
}
}
});
//read dataSource to load the data
function createSeries(series) {
var data = series;
$("#chart").kendoChart({
seriesDefaults: {
type: "bar"
},
series: data,
tooltip: {
visible: true
}
});
}
//initialize the chart
$(document).ready(function() {
$("#grid").kendoGrid({
dataSource: dataSource,
columns: [
{ field: "type",...