I am using C3.js to create charts. I have created a simple donut chart. Here is the screen shot:
When I hover over the different donut slices/pieces they expand. Here i
Use the following
setTimeout(function () {
chart.internal.expandArc(['A', 'B'])
}, 0)
Source
Note: The ideal solution would be to grab the mouseover
callback and call it with your data but if you only want to expand the arcs just call the method above
var currentSlice;
var chart = c3.generate({
bindto: '#dash',
data: {
x: 'x',
columns: [
['x', '2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05', '2013-01-06'],
['A', 30, 200, 100, 400, 150, 250],
['B', 130, 100, 140, 200, 150, 50],
['C', 50, 100, 130, 240, 200, 150],
['D', 130, 100, 140, 200, 150, 50],
['E', 130, 150, 200, 300, 200, 100]
],
type: 'donut'
},
axis: {
x: {
type: 'timeseries',
tick: {
format: '%Y-%m-%d',
centered: true,
position: 'inner-right'
}
}
},
bar: {
width: {
ratio: 0.5 // this makes bar width 50% of length between ticks
}
},
tooltip: {
grouped: false,
contents: function(data, defaultTitleFormat, defaultValueFormat, color) {
// console.log("Containt");
// console.log(data, defaultTitleFormat, defaultValueFormat, color);
return "" + data[0].value + "
";
}
}
});
setTimeout(function() {
chart.internal.expandArc(['A', 'B'])
}, 0)
p {
line-height: 1;
font-weight: bold;
padding: 5px 12px;
background: rgba(0, 0, 0, 0.8);
color: #fff;
border-radius: 4px;
line-height: 15px;
font-size: 12px;
min-width: 91px;
}