0

我正在使用 D3(技术上是 C3)来尝试创建分组条形图。

我正在尝试制作的图表将是每个职业的捐赠条形图,按 PaymentType 分组。对于我的生活,我无法弄清楚如何进行分组。

这是我到目前为止的代码。它产生我想要的一切,除了按 PaymentType 分组:

var x_values = ["Occupation", "DENTIST", "PROGRAMMER/ANALYST", "CORPORATE SECRETARY", "PHYSICIAN", "PROFESSOR", "PRESIDENT", "PROFESSOR", "MANAGER", "CORPORATE SECRETARY", "PRESIDENT", "PHYSICIAN", "DENTIST", "PROGRAMMER/ANALYST", "CO-OWNER", "MANAGER", "CO-OWNER"]
var y_values = ["Donation", 11340, 12335, 3259, 18041, 10415, 35900, 14660, 21985, 2950, 15110, 16705, 370, 22255, 13055, 4000, 20740]
var z_values = ["PaymentType", "MONETARY", "NON-MONETARY", "NON-MONETARY", "MONETARY", "MONETARY", "NON-MONETARY", "NON-MONETARY", "MONETARY", "MONETARY", "MONETARY", "NON-MONETARY", "NON-MONETARY", "MONETARY", "MONETARY", "NON-MONETARY", "NON-MONETARY"]

var chart = c3.generate({
    data: {columns: [y_values],
            type: 'bar',
            groups: [z_values],},
    axis: {x: 
            {type: 'category',
            categories: x_values}}
});
4

1 回答 1

2

像这样的东西?

var chart = c3.generate({
    data: {
        columns: [
            ['MONETARY', 11340, 3259, 10415, 14660, 2950, 16705, 22255, 4000],
            ['NON-MONETARY', 12335, 18041, 35900, 21985, 15110, 370, 13055, 20740]
        ],
        type: 'bar',
        groups: [
            ['MONETARY','NON-MONETARY']
        ]
    },
    axis: {
        x: {
            type: 'Occupation',
            categories: ['DENTIST', 'PROGRAMMER/ANALYST', 'CORPORATE SECRETARY', 'PHYSICIAN', 'PROFESSOR', 'PRESIDENT', 'MANAGER', 'CO-OWNER']
        }
    }    
});

小提琴 - http://jsfiddle.net/63cp42Lv/

如果您想让条形图并排显示而不是堆叠显示,只需删除 groups 属性即可。

于 2015-06-09T14:26:52.380 回答