如何在c3js条形图中获得圆角

时间:2015-01-21 14:08:05

标签: javascript d3.js charts c3.js

看起来像nvd3,c3js等基于d3的图表库都不支持条形图的圆角。

我需要条形图中的条形如下图所示,我的项目有渐变和圆角。

enter image description here

在c3js中实现此目的的任何hack或配置?

1 个答案:

答案 0 :(得分:7)

需要覆盖c3js函数generateDrawBar并提供获取圆角的逻辑,一般c3js路径元素由对应于条形四角的四个点组成。

现在你需要提供逻辑,在par的左上角和右上角有多个点,以平滑条形角。

还有几种情况: -

1)用于堆积条形图的圆角。

2)圆角为负值,条形指向下方或相反方向。

rounded corner bars jsFiddle

圆角c3js条形图快照 rounded corner c3js bar charts snapshot

var chart = c3.generate({
bindto: '#chart',
padding: {
    left: 200,
    right: 100,
    top: 20,
    bottom: 20
},
data: {
    x: 'x',
    labels: true,
    columns: [
        ['data1',40, 30, 200, 100, 400, 150, 250, 50, 100, 250,67,190,48,123,76,54,254],
        ['x','Travel and Hospitality','Life Science and Pharma', 'Saas and Cloud', 'Hi-tech Manufacturing', 'Software', 'Business Services', 'Govt/Public Sector', 'Energy', 'Manufacturing', 'Healthcare','Media','Internet','Retail','Biotech','Automobile','Consumer Goods','Financial Services']
    ],
    type: 'bar'
},
axis: {
    rotated: true,
    x: {
        type: 'category',
        tick:{
            multiline: false
        }
    }
},
legend: {
    show: false
},
tooltip: {
    show: false
},
bar: {
    width: {
        ratio: .7
    },
    spacing: 2
}
});