var chart = c3.generate({ data: { columns: [ ['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250] ], type: 'spline', selection: { enabled: true } }, color: { pattern: [color.primary._500, color.info._500, color.success._500, color.danger._500, color.warning._500] }, grid: { x: { show: false }, y: { show: true } } }); var defaultMessage = $('#message').html(), currentIndex = 0, timer, duration = 1500, demos = [ function () { chart.load({ columns: [ ['data2', 100, 30, 200, 320, 50, 150, 230, 80, 150] ], type: 'spline' }) setMessage('Load data2'); setProgressBar('4') }, function () { chart.load({ columns: [ ['data3', 70, 90, 170, 220, 100, 110, 130, 40, 50] ] }) setMessage('Load data3'); setProgressBar('8') }, function () { chart.select(['data1'], [2]); setMessage('Select point for index 2 of data1'); setProgressBar('12') }, function () { chart.select(['data1'], [4, 6]); setMessage('Select point for index 4,6 of data1'); setProgressBar('16') }, function () { chart.unselect(); setMessage('Unselect points'); setProgressBar('20') }, function () { chart.focus('data2'); setMessage('Focus on data2'); setProgressBar('24') }, function () { chart.focus('data3'); setMessage('Focus on data3'); setProgressBar('28') }, function () { chart.revert(); setMessage('Defocus'); setProgressBar('32') }, function () { chart.load({ columns: [ ['data1', 300, 230, 400, 520, 230, 250, 330, 280, 250] ] }) setMessage('Update data1'); setProgressBar('36') }, function () { chart.load({ columns: [ ['data2', 30, 50, 90, 120, 40, 50, 80, 70, 50] ] }) setMessage('Update data2'); setProgressBar('40') }, function () { chart.regions([{ start: 1, end: 3 }]); setMessage('Add region from 1 to 3'); setProgressBar('44') }, function () { chart.regions.add([{ start: 6 }]); setMessage('Add region from 6 to end'); setProgressBar('48') }, function () { chart.regions([]); setMessage('Clear regions'); setProgressBar('52') }, function () { chart.xgrids([{ value: 1, text: 'Label 1' }, { value: 4, text: 'Label 4' }]); setMessage('Add x grid lines for 1, 4'); setProgressBar('56') }, function () { chart.ygrids.add([{ value: 450, text: 'Label 450' }]); setMessage('Add y grid lines for 450'); setProgressBar('60') }, function () { chart.xgrids.remove({ value: 1 }); chart.xgrids.remove({ value: 4 }); setMessage('Remove grid lines for 1, 4'); setProgressBar('64') }, function () { chart.ygrids.remove({ value: 450 }); setMessage('Remove grid line for 450'); setProgressBar('68') }, function () { chart.transform('bar'); setMessage('Show as bar chart'); setProgressBar('72') }, function () { chart.groups([ ['data2', 'data3'] ]); setMessage('Grouping data2 and data3'); setProgressBar('76') }, function () { chart.groups([ ['data1', 'data2', 'data3'] ]); setMessage('Grouping data1, data2 and data3'); }, function () { chart.groups([ ['data2', 'data3'] ]); chart.transform('spline', 'data1'); setMessage('Show data1 as spline'); setProgressBar('80') }, function () { chart.unload({ ids: 'data3' }); setMessage('Unload data3'); setProgressBar('84') }, function () { chart.unload({ ids: 'data2' }); setMessage('Unload data2'); setProgressBar('88') }, function () { chart.flow({ columns: [ ['data1', 390, 400, 200, 500] ], duration: 1000, }); setMessage('Flow 4 data'); setProgressBar('92') }, function () { // wait for end of transition for flow }, function () { chart.flow({ columns: [ ['data1', 190, 230] ], }); setMessage('Flow 2 data'); setProgressBar('96') }, function () { // wait for end of transition for flow }, function () { chart.transform('spline', ['data1', 'data2', 'data3']); chart.groups([ ['data1'], ['data2'], ['data3'] ]); chart.load({ columns: [ ['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250] ] }) setMessage('Finishing demo..'); setProgressBar('100') stopDemo() } ]; function setMessage(message) { document.getElementById('message').innerHTML = '
' + message + '
'; } function setProgressBar(percentage) { $('#demo-progress').css("width", percentage + "%"); } function startDemo() { setMessage('Starting Demo...'); timer = setInterval(function () { if (currentIndex == demos.length) currentIndex = 0; demos[currentIndex++](); }, duration); $('#playDemo').hide(); $('#pauseDemo').show(); } function stopDemo() { clearInterval(timer); document.getElementById('message').innerHTML = '
Thanks for watching!
'; $('#playDemo').hide(); $('#pauseDemo').hide(); }; function pauseDemo() { clearInterval(timer); document.getElementById('message').innerHTML = '
Demo Paused
'; $('#playDemo').show(); $('#pauseDemo').hide(); };