123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- 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 = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded fadeinup">' + message + '</div>';
- }
- 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 = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded fadeinup bg-success-500 text-center">Thanks for watching! <br> <button class="btn btn-xs btn-dark mt-2" onclick="startDemo();">Play again</button> </div>';
- $('#playDemo').hide();
- $('#pauseDemo').hide();
- };
- function pauseDemo() {
- clearInterval(timer);
- document.getElementById('message').innerHTML = '<div id="demoMessage" class="shadow-lg fs-xl p-3 rounded highlight"> Demo Paused </div>';
- $('#playDemo').show();
- $('#pauseDemo').hide();
- };
|