polar-area.html 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Polar Area Chart</title>
  5. <script src="../../dist/Chart.bundle.js"></script>
  6. <script src="../utils.js"></script>
  7. <style>
  8. canvas {
  9. -moz-user-select: none;
  10. -webkit-user-select: none;
  11. -ms-user-select: none;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div id="canvas-holder" style="width:50%">
  17. <canvas id="chart-area"></canvas>
  18. </div>
  19. <button id="randomizeData">Randomize Data</button>
  20. <button id="addData">Add Data</button>
  21. <button id="removeData">Remove Data</button>
  22. <script>
  23. var randomScalingFactor = function() {
  24. return Math.round(Math.random() * 100);
  25. };
  26. var chartColors = window.chartColors;
  27. var color = Chart.helpers.color;
  28. var config = {
  29. data: {
  30. datasets: [{
  31. data: [
  32. randomScalingFactor(),
  33. randomScalingFactor(),
  34. randomScalingFactor(),
  35. randomScalingFactor(),
  36. randomScalingFactor(),
  37. ],
  38. backgroundColor: [
  39. color(chartColors.red).alpha(0.5).rgbString(),
  40. color(chartColors.orange).alpha(0.5).rgbString(),
  41. color(chartColors.yellow).alpha(0.5).rgbString(),
  42. color(chartColors.green).alpha(0.5).rgbString(),
  43. color(chartColors.blue).alpha(0.5).rgbString(),
  44. ],
  45. label: 'My dataset' // for legend
  46. }],
  47. labels: [
  48. 'Red',
  49. 'Orange',
  50. 'Yellow',
  51. 'Green',
  52. 'Blue'
  53. ]
  54. },
  55. options: {
  56. responsive: true,
  57. legend: {
  58. position: 'right',
  59. },
  60. title: {
  61. display: true,
  62. text: 'Chart.js Polar Area Chart'
  63. },
  64. scale: {
  65. ticks: {
  66. beginAtZero: true
  67. },
  68. reverse: false
  69. },
  70. animation: {
  71. animateRotate: false,
  72. animateScale: true
  73. }
  74. }
  75. };
  76. window.onload = function() {
  77. var ctx = document.getElementById('chart-area');
  78. window.myPolarArea = Chart.PolarArea(ctx, config);
  79. };
  80. document.getElementById('randomizeData').addEventListener('click', function() {
  81. config.data.datasets.forEach(function(piece, i) {
  82. piece.data.forEach(function(value, j) {
  83. config.data.datasets[i].data[j] = randomScalingFactor();
  84. });
  85. });
  86. window.myPolarArea.update();
  87. });
  88. var colorNames = Object.keys(window.chartColors);
  89. document.getElementById('addData').addEventListener('click', function() {
  90. if (config.data.datasets.length > 0) {
  91. config.data.labels.push('data #' + config.data.labels.length);
  92. config.data.datasets.forEach(function(dataset) {
  93. var colorName = colorNames[config.data.labels.length % colorNames.length];
  94. dataset.backgroundColor.push(window.chartColors[colorName]);
  95. dataset.data.push(randomScalingFactor());
  96. });
  97. window.myPolarArea.update();
  98. }
  99. });
  100. document.getElementById('removeData').addEventListener('click', function() {
  101. config.data.labels.pop(); // remove the label first
  102. config.data.datasets.forEach(function(dataset) {
  103. dataset.backgroundColor.pop();
  104. dataset.data.pop();
  105. });
  106. window.myPolarArea.update();
  107. });
  108. </script>
  109. </body>
  110. </html>