在数据事件中访问c3js中的数据值

时间:2015-05-28 07:10:38

标签: javascript json d3.js c3.js c3

我想弄清楚,如果有办法从Company事件中的onclick数据数组中访问值。到目前为止,使用api函数我只能访问Users数组。

var chartCompany = c3.generate({
    bindto: '#users-chart',        
    data: {
        x: 'Company',
        url: '/ajax_call',
        mimeType: 'json',
        type: 'bar',
        axes: {
            Company: 'x'
        },
        onclick: function (d, i) { console.log(chartCompany.data()); }
    },
    axis: {
        x: {
            type: 'category',
             show: false
        },
    }
});

来自服务器的json响应:

{
 "Company": ["Company 1", "Company 2", "Company 2"],
 "Users"  : [10, 20, 30]
}

任何帮助/想法都将受到高度赞赏。

[编辑1]详细说明我的问题:当点击用户的数据(显示为条形图)时,我想获得相应的公司。

[编辑2]工作静态示例:http://jsfiddle.net/et37a9t2/

1 个答案:

答案 0 :(得分:6)

经过大量尝试不同的事情之后,我终于只看了一下图表对象,发现了一个属性categories。这是填充的,当x轴被声明为类型类别时,就像我的情况一样。因此,要从x轴获取数据,需要调用.categories()函数。

        ...
        },
        onclick: function (d, i) { console.log(chartCompany.categories()[d.index]); }
    },
    ...

单击图表中的栏时,将返回相应的类别。