Display a pie chart in canvas using Google charts

I am trying to display an interactive pie chart inside a canvas using the following code:

<html>
  <head>
    <!--Load the AJAX API-->
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">

      // Load the Visualization API and the piechart package.
      google.load('visualization', '1.0', {'packages':['corechart']});

      // Set a callback to run when the Google Visualization API is loaded.
      google.setOnLoadCallback(drawChart);

      // Callback that creates and populates a data table,
      // instantiates the pie chart, passes in the data and
      // draws it.
      function drawChart() {
        var context = document.getElementById('myCanvas').getContext('2d');
        // Create the data table.
        var data = new google.visualization.DataTable();
        data.addColumn('string', 'Topping');
        data.addColumn('number', 'Slices');
        data.addRows([
          ['Mushrooms', 3],
          ['Onions', 1],
          ['Olives', 1],
          ['Zucchini', 1],
          ['Pepperoni', 2]
        ]);

        // Set chart options
        var options = {'title':'How Much Pizza I Ate Last Night',
                       'width':800,
                       'height':800};

        // Instantiate and draw our chart, passing in some options.
        var chart = new google.visualization.PieChart(context);
        chart.draw(data, options);
      }
    </script>
  </head>

  <body>
    <!--canvas that will hold the pie chart-->
    <canvas id="myCanvas"></canvas>
  </body>
</html>

It works fine when I show it inside a div and change this line to:

var chart = new google.visualization.PieChart(document.getElementById('div'));

But when I try to display inside the canvas, it doesn’t display anything ... kindly tell me what am I doing wrong?

+4
source share

All Articles