如何使用数据对象中的键设置c3.js图表​​数据类型?

时间:2017-02-18 19:17:24

标签: javascript json c3.js

我试图动态设置对象中每个键的数据类型。

该对象如下:

{"x":["2016-01-1", "2016-01-02", etc], "uniqueKey":[4234, 4324, etc], "uniqueKey2":[432, 543, etc], ... }

键和名称的数量将根据我抓取的数据而有所不同,但我需要为每个键设置图表数据类型。

function show_chart1(data) {

    var json = JSON.parse(data);

    var chart = c3.generate({
        bindto: '#chart',
        data: {
            x: 'x',
            xFormat: '%Y-%m-%d',

            json: json,

            #### need these to be the unique key names
            types: {
                uniqueKey: 'area-spline', 
                uniqueKey2: 'area-spline'
                ...
            }, 
            groups: [[uniqueKey, uniqueKey2, etc]]
        },
        axis: {
            x: {
                type: 'timeseries',
                tick: {
                    format: '%Y-%m-%d'
                }
            }
        }      
    });
};

我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以为类型/组构建另一个对象。如果您没有某些图表变体,则可以使用type: 'area-spline'而不是为每个条目指定相同的类型。

当您知道您的唯一键是什么或它们是什么样的(正则表达式)时,您可以这样做:

var typeDefinition = {}
for(var key in json){

    // here you can use if or switch to apply certain types
    if( key <your statement> ){
        typeDefinition[key] = 'area-spline';
    }

}
<...>
types: typeDefinition
<...>