使用data.types变量时,C3图表填充不起作用

时间:2017-03-21 02:54:01

标签: javascript c3.js

我有一个我希望填充的C3线图,但是数据字段的名称不固定,我把它放在一个变量中。

因此,使用样本here,以下DOES填写正常

        var chart = c3.generate({
        data: {
            x: 'x',

            columns: [
                ['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],
                ['data1', 30, 200, 100, 400, 150, 250],
            ],
             types : {
                  'data1': 'area'
                }
        },
        axis: {
            x: {
                type: 'timeseries',
                tick: {
                    format: '%Y-%m-%d'
                }
            }
        }
    });

但是,如果我只是移动数据1'变量,它不再填充..

var val = 'data1';
var chart = c3.generate({
data: {
    x: 'x',

    columns: [
        ['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],
        ['data1', 30, 200, 100, 400, 150, 250],
    ],
     types : {
          val: 'area'  // <---- USING VARIABLE
        }
},
axis: {
    x: {
        type: 'timeseries',
        tick: {
            format: '%Y-%m-%d'
        }
    }
   }
   });

有没有人知道为什么这会产生任何影响,以及是否有解决方法?

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:0)

我猜你的配置将使用'val'作为键而不是val的值。

解决方法:

var val = 'data1';
var conf = {
data: {
    x: 'x',
    columns: [
        ['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],
        [val, 30, 200, 100, 400, 150, 250],
    ],
    types : {}
},
axis: {
    x: {
        type: 'timeseries',
        tick: {
            format: '%Y-%m-%d'
        }
    }
   }
   }

conf.data.types[val] = 'area';
var chart = c3.generate(conf);

顺便说一句,你忘了改变另一个变量。

columns [ ..., ['data1',...]]