Advertisement
Guest User

ChartExample

a guest
Apr 2nd, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.05 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.   <meta charset="UTF-8">
  5.   <title>Title</title>
  6.   <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.bundle.min.js"></script>
  7. </head>
  8. <body onLoad="ready()">
  9. <canvas id="myChart" width="250" height="200"></canvas>
  10. <script>
  11.  
  12.   var ctx = document.getElementById("myChart");
  13.  
  14.   var myChart = new Chart(ctx, {
  15.     type: 'bar',
  16.     data: {
  17.       labels: ["Brazil", "Canada", "Spain", "Australia", "Thailand", "India"],
  18.       datasets: [{
  19.         label: 'Flights in Millions',
  20.         data: [],//start empty
  21.         backgroundColor: [
  22.           'rgba(10, 168, 196, 0.2)',
  23.           'rgba(102, 96, 151, 0.2)',
  24.           'rgba(57, 87, 255, 0.2)',
  25.           'rgba(233, 182, 233, 0.2)',
  26.           'rgba(108, 213, 207, 0.2)',
  27.           'rgba(125, 178, 230, 0.2)'
  28.         ],
  29.         borderColor: [
  30.           'rgba(10, 168, 196, 1)',
  31.           'rgba(102, 96, 151, 1)',
  32.           'rgba(57, 87, 255, 1)',
  33.           'rgba(233, 182, 233, 1)',
  34.           'rgba(108, 213, 207, 1)',
  35.           'rgba(125, 178, 230, 1)'
  36.         ],
  37.         borderWidth: 1
  38.       }]
  39.     },
  40.     options: {
  41.       scales: {
  42.         yAxes: [{
  43.           ticks: {
  44.             beginAtZero: true
  45.           }
  46.         }]
  47.       },
  48.       onClick: handleClick
  49.     }
  50.   });
  51.  
  52.   window.onmessage = function(event){
  53.  
  54.     if (event.data && Array.isArray(event.data)) {
  55.      myChart.data.datasets[0].data = event.data;
  56.       myChart.update();
  57.     }
  58.     else {
  59.       console.log("HTML Code Element received a generic message:");
  60.       console.log(event.data);
  61.     }
  62.   };
  63.  
  64.   function handleClick(e){
  65.     var activeBars = myChart.getElementAtEvent(e);
  66.  
  67.     var value = myChart.config.data.datasets[activeBars[0]._datasetIndex].data[activeBars[0]._index];
  68.     var label = activeBars[0]._model.label;
  69.  
  70.     window.parent.postMessage({
  71.       "type":"click",
  72.       "label":label,
  73.       "value":value
  74.     } , "*");
  75.   }
  76.  
  77.   function ready(){
  78.     window.parent.postMessage({"type":"ready"}, "*");
  79.   }
  80.  
  81. </script>
  82.  
  83. </body>
  84. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement