Grouping Chart
Kendo chart using the grouping of the datasource
by drysg
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",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "JPG",
size: 2},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3},
{
type: "PNG",
size: 3}
];
var dataSource = new kendo.data.DataSource({
data: pictures,
//create group and aggregates
group: {
field: "type",
aggregates: [
{
field: "size",
aggregate: "sum"}
]
}
});
//read dataSource to load the data
dataSource.read();
var series = [],
items = dataSource.view(),
length = items.length,
itemCounts = [],
itemNames = [],
item;
//create the chart series
for (var i = 0; i < length; i++) {
item = items[i];
itemCounts.push(item.items.length);
itemNames.push(item.value);
}
series.push({
name: "data types",
data: itemCounts
})
//initialize the chart
$(document).ready(function() {
$("#chart").kendoChart({
dataSource: dataSource,
seriesDefaults: {
type: "column"
},
series: series,
categoryAxis: {
categories: itemNames
},
tooltip: {
visible: true
}
});
});