index.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. var chart = c3.generate({
  2. data: {
  3. columns: [
  4. ['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250]
  5. ],
  6. selection: {
  7. enabled: true
  8. }
  9. }
  10. });
  11. var defaultMessage = $('#message').html(), currentIndex = 0, timer, duration = 1500, demos = [
  12. function () {
  13. chart.load({
  14. columns: [['data2', 100, 30, 200, 320, 50, 150, 230, 80, 150]]
  15. })
  16. setMessage('Load data2');
  17. },
  18. function () {
  19. chart.load({
  20. columns: [['data3', 70, 90, 170, 220, 100, 110, 130, 40, 50]]
  21. })
  22. setMessage('Load data3');
  23. },
  24. function () {
  25. chart.select(['data1'], [2]);
  26. setMessage('Select point for index 2 of data1');
  27. },
  28. function () {
  29. chart.select(['data1'], [4,6]);
  30. setMessage('Select point for index 4,6 of data1');
  31. },
  32. function () {
  33. chart.unselect();
  34. setMessage('Unselect points');
  35. },
  36. function () {
  37. chart.focus('data2');
  38. setMessage('Focus on data2');
  39. },
  40. function () {
  41. chart.focus('data3');
  42. setMessage('Focus on data3');
  43. },
  44. function () {
  45. chart.revert();
  46. setMessage('Defocus');
  47. },
  48. function () {
  49. chart.load({
  50. columns: [['data1', 300, 230, 400, 520, 230, 250, 330, 280, 250]]
  51. })
  52. setMessage('Update data1');
  53. },
  54. function () {
  55. chart.load({
  56. columns: [['data2', 30, 50, 90, 120, 40, 50, 80, 70, 50]]
  57. })
  58. setMessage('Update data2');
  59. },
  60. function () {
  61. chart.regions([{start:1,end:3}]);
  62. setMessage('Add region from 1 to 3');
  63. },
  64. function () {
  65. chart.regions.add([{start:6}]);
  66. setMessage('Add region from 6 to end');
  67. },
  68. function () {
  69. chart.regions([]);
  70. setMessage('Clear regions');
  71. },
  72. function () {
  73. chart.xgrids([{value: 1, text:'Label 1'}, {value: 4, text: 'Label 4'}]);
  74. setMessage('Add x grid lines for 1, 4');
  75. },
  76. function () {
  77. chart.ygrids.add([{value: 450, text:'Label 450'}]);
  78. setMessage('Add y grid lines for 450');
  79. },
  80. function () {
  81. chart.xgrids.remove({value: 1});
  82. chart.xgrids.remove({value: 4});
  83. setMessage('Remove grid lines for 1, 4');
  84. },
  85. function () {
  86. chart.ygrids.remove({value: 450});
  87. setMessage('Remove grid line for 450');
  88. },
  89. function () {
  90. chart.transform('bar');
  91. setMessage('Show as bar chart');
  92. },
  93. function () {
  94. chart.groups([['data2','data3']]);
  95. setMessage('Grouping data2 and data3');
  96. },
  97. function () {
  98. chart.groups([['data1', 'data2', 'data3']]);
  99. setMessage('Grouping data1, data2 and data3');
  100. },
  101. function () {
  102. chart.groups([['data2', 'data3']]);
  103. chart.transform('line', 'data1');
  104. setMessage('Show data1 as line');
  105. },
  106. function () {
  107. chart.unload({
  108. ids: 'data3'
  109. });
  110. setMessage('Unload data3');
  111. },
  112. function () {
  113. chart.unload({
  114. ids: 'data2'
  115. });
  116. setMessage('Unload data2');
  117. },
  118. function () {
  119. chart.flow({
  120. columns: [
  121. ['data1', 390, 400, 200, 500]
  122. ],
  123. duration: 1000,
  124. });
  125. setMessage('Flow 4 data');
  126. },
  127. function () {
  128. // wait for end of transition for flow
  129. },
  130. function () {
  131. chart.flow({
  132. columns: [
  133. ['data1', 190, 230]
  134. ],
  135. });
  136. setMessage('Flow 2 data');
  137. },
  138. function () {
  139. // wait for end of transition for flow
  140. },
  141. function () {
  142. chart.transform('line', ['data1', 'data2', 'data3']);
  143. chart.groups([['data1'], ['data2'], ['data3']]);
  144. chart.load({
  145. columns: [['data1', 30, 200, 100, 400, 150, 250, 50, 100, 250]]
  146. })
  147. setMessage('Starting Demo..');
  148. }
  149. ];
  150. function setMessage(message) {
  151. document.getElementById('message').innerHTML = '<a id="demoMessage" class="button small secondary" onclick="stopDemo();" title="Stop Demo" onclick="stopDemo();">'+message+'</button>';
  152. // $('#demoMessage').tooltip('toggle');
  153. }
  154. function startDemo() {
  155. setMessage('Starting Demo..');
  156. timer = setInterval(function(){
  157. if (currentIndex == demos.length) currentIndex = 0;
  158. demos[currentIndex++]();
  159. }, duration);
  160. }
  161. function stopDemo() {
  162. clearInterval(timer);
  163. document.getElementById('message').innerHTML = defaultMessage;
  164. }