为Kendo UI Stacked和Grouped Bar Chart定义颜色

时间:2013-02-25 02:19:50

标签: javascript html5 kendo-ui kendo-dataviz

我希望在使用Kendo的图表中获得this,但他们没有使用数据源的任何示例。

我目前正在使用hack来获取没有数据源,但是能够使用数据源可以为我提供许多好处。

到目前为止,这是我的代码:

var graph_data = [
    {'date': '2013-02-22T00:00:00', 'color': 'white', 'y_value': 1, 'name': 'name01'},
    {'date': '2013-02-23T00:00:00', 'color': 'orange','y_value': 1, 'name': 'name01'},
    {'date': '2013-02-22T00:00:00', 'color': 'red',   'y_value': 1, 'name': 'name02'},
    {'date': '2013-02-23T00:00:00', 'color': 'grey',  'y_value': 1, 'name': 'name02'},
    {'date': '2013-02-22T00:00:00', 'color': 'black', 'y_value': 1, 'name': 'name03'},
    {'date': '2013-02-23T00:00:00', 'color': 'blue',  'y_value': 1, 'name': 'name03'}
]
var unique_names = 3;
var series = [];
for(var i = 0; i < unique_names; i++){
    series.push({'field':'y_value', 'type':'bar'});
}
$('#chart').kendoChart({
    'dataSource':{
        'data':graph_data,
        'group': {
            'field':'name',
            'dir':'asc'
        },
        'schema':{
            'model':{
                'fields':{
                    'name':{'type':"string"},
                    'date':{'type':'date'},
                    'y_value':{'type':'number'},
                    'color':{'type':'string'}
                }
            }
        }
    },
    'seriesDefaults' : {
        'colorField':'color',
        'stack':true,
        'gap':0.1
    },
    'series': series,
    'categoryAxis': {
        'field': 'name'
    }
});

1 个答案:

答案 0 :(得分:2)

我将配置更改为按日期分组并且神奇地工作。

$('#chart').kendoChart({
'dataSource':{
    'data':graph_data,
    'group': {
        'field':'date',
        'dir':'asc'
    },
    'schema':{
        'model':{
            'fields':{
                'name':{'type':"string"},
                'date':{'type':'date'},
                'y_value':{'type':'number'},
                'color':{'type':'string'}
            }
        }
    }
},
'seriesDefaults' : {
    'colorField':'color',
    'stack':true,
    'gap':0.1
},
'series': [{'type':'bar', 'field':'stack_value', 'stack':true}],
'categoryAxis': {
    'field': 'name'
}
});