Kendo UI Chart中的组和堆栈数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kendo UI Chart中的组和堆栈数据相关的知识,希望对你有一定的参考价值。

我有一个json数据,如:

arr = [{ Name: 'PAVI', value: 3}, {Name: 'Crystal', value: 2}, {Name: 'PAVI', value: 6}, {Name: 'Crystal', value: 11}]

如何在Kendo UI Chart中使用类似名称堆叠数据?这是我这个时刻的代码

$("#chart").kendoChart({
    dataSource: {
        data: data,
        group: {
            field: 'Name'
        }
    },
series: [{
        name: "Total Sales",
        field: "value",
        stack: true
    }],
    categoryAxis: {
        field: 'Name'
    },

实际上这里是我使用的真实数据的结构

{
 Account:"Piscopo Cash and Carry"
 AccountName:"Piscopo Cash and Carry"
 Category:""
 MainCategory:"Other"
 TotalQty:146
 TotalSales:9747.616
}

UPDATE

我通过将组设置为主类别找到了解决方案(甚至不认为解决方案是如此简单XD)

答案

我不确定你的“堆栈”是什么意思,因为有了这个数据结构,我看不出你怎么能堆叠它。但是,如果要对具有相同名称的值求和并显示总计,则可以使用图表中的聚合选项。

以下是如何做到这一点:这将总结PAVI和Crystal的值,并在图表中仅显示两列。

var dataSource = new kendo.data.DataSource({
    data: data,
    group: {
        field: "Name", aggregates: [{
            field: "value", aggregate: "sum"
        }]
    }
});

请注意groupaggregate选项。

这是完整的代码:

var data = [
    { Name: 'PAVI', value: 3 },
    { Name: 'Crystal', value: 2 },
    { Name: 'PAVI', value: 3 },
    { Name: 'Crystal', value: 10 }
];

var dataSource = new kendo.data.DataSource({
    data: data,
    group: {
        field: "Name", aggregates: [{
            field: "value", aggregate: "sum"
        }]
    }
});

dataSource.read();

$("#chart").kendoChart({
    dataSource: getChartData(dataSource),
    series: [{
        type: "column",
        field: "value",
        categoryField: "Name"
    }]
});


function getChartData(dataSource) {    
    var chartData = [];
    var view = dataSource.view();
    for (var idx = 0; idx < view.length; idx++) {
        chartData.push({
            Name: view[idx].value,
            value: view[idx].aggregates.value.sum
        });
    }
    return chartData;
}

这是一个Fiddle

希望它有所帮助:)随意问你是否有任何疑问。

以上是关于Kendo UI Chart中的组和堆栈数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Kendo UI Chart Angular 2 中隐藏网格线

Kendo UI Chart 禁用图例项右键单击事件

Kendo UI angular - 在条形图中旋转 x 轴的标签

如何减小 Kendo UI 饼图的大小?

Kendo UI 自动完成数据源问题

如果数据相对较小,Kendo 柱形图的 Bar 不显示 -- Kendo Angular Chart