Rysowanie wielu wykresów

Na tej stronie pokazujemy, jak rysować kilka wykresów na jednej stronie internetowej.

Rysowanie wielu wykresów na jednej stronie

Jeśli na jednej stronie chcesz narysować kilka wykresów, w elemencie <head> strony umieść kod tych elementów:

  • Wczytaj wszystkie pakiety wymagane przez wykresy w jednym wywołaniu google.charts.load().
  • Do każdego wykresu na stronie dodaj wywołanie funkcji google.charts.setOnLoadCallback() z wywołaniem zwrotnym, które pobiera wykres jako dane wejściowe, np. google.charts.setOnLoadCallback(myPieChart).

Załóżmy na przykład, że chcesz narysować dwa wykresy kołowe, na których widać, ile pizzy zjedli wczoraj Twoi znajomi, Sara i Antoni. Przykład poniżej pokazuje, jak wyświetlić oba wykresy obok siebie.

<html>
 
<head>
   
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
   
<script type="text/javascript">

     
// Load Charts and the corechart package.
      google
.charts.load('current', {'packages':['corechart']});

     
// Draw the pie chart for Sarah's pizza when Charts is loaded.
      google
.charts.setOnLoadCallback(drawSarahChart);

     
// Draw the pie chart for the Anthony's pizza when Charts is loaded.
      google
.charts.setOnLoadCallback(drawAnthonyChart);

     
// Callback that draws the pie chart for Sarah's pizza.
     
function drawSarahChart() {

       
// Create the data table for Sarah's pizza.
       
var data = new google.visualization.DataTable();
        data
.addColumn('string', 'Topping');
        data
.addColumn('number', 'Slices');
        data
.addRows([
         
['Mushrooms', 1],
         
['Onions', 1],
         
['Olives', 2],
         
['Zucchini', 2],
         
['Pepperoni', 1]
       
]);

       
// Set options for Sarah's pie chart.
       
var options = {title:'How Much Pizza Sarah Ate Last Night',
                       width
:400,
                       height
:300};

       
// Instantiate and draw the chart for Sarah's pizza.
       
var chart = new google.visualization.PieChart(document.getElementById('Sarah_chart_div'));
        chart
.draw(data, options);
     
}

     
// Callback that draws the pie chart for Anthony's pizza.
     
function drawAnthonyChart() {

       
// Create the data table for Anthony's pizza.
       
var data = new google.visualization.DataTable();
        data
.addColumn('string', 'Topping');
        data
.addColumn('number', 'Slices');
        data
.addRows([
         
['Mushrooms', 2],
         
['Onions', 2],
         
['Olives', 2],
         
['Zucchini', 0],
         
['Pepperoni', 3]
       
]);

       
// Set options for Anthony's pie chart.
       
var options = {title:'How Much Pizza Anthony Ate Last Night',
                       width
:400,
                       height
:300};

       
// Instantiate and draw the chart for Anthony's pizza.
       
var chart = new google.visualization.PieChart(document.getElementById('Anthony_chart_div'));
        chart
.draw(data, options);
     
}
   
</script>
 
</head>
 
<body>
   
<!--Table and divs that hold the pie charts-->
   
<table class="columns">
     
<tr>
       
<td><div id="Sarah_chart_div" style="border: 1px solid #ccc"></div></td>
       
<td><div id="Anthony_chart_div" style="border: 1px solid #ccc"></div></td>
     
</tr>
   
</table>
 
</body>
</html>


Rysowanie wielu wykresów przy użyciu pojedynczego wywołania zwrotnego

W poprzednim przykładzie do rysowania wykresów użyto 2 wywołań zwrotnych, ponieważ dane na obu wykresach są różne. Jeśli chcesz narysować kilka wykresów z tymi samymi danymi, wygodniej jest utworzyć jedno wywołanie zwrotne dla obu wykresów. Ilustruje to poniższy przykład.

<html>
 
<head>
   
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
   
<script type="text/javascript">
     
// Load Charts and the corechart and barchart packages.
      google
.charts.load('current', {'packages':['corechart']});

     
// Draw the pie chart and bar chart when Charts is loaded.
      google
.charts.setOnLoadCallback(drawChart);

     
function drawChart() {

       
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]
       
]);

       
var piechart_options = {title:'Pie Chart: How Much Pizza I Ate Last Night',
                       width
:400,
                       height
:300};
       
var piechart = new google.visualization.PieChart(document.getElementById('piechart_div'));
        piechart
.draw(data, piechart_options);

       
var barchart_options = {title:'Barchart: How Much Pizza I Ate Last Night',
                       width
:400,
                       height
:300,
                       legend
: 'none'};
       
var barchart = new google.visualization.BarChart(document.getElementById('barchart_div'));
        barchart
.draw(data, barchart_options);
     
}
   
</script>
 
</head>
<body>
   
<!--Table and divs that hold the pie charts-->
   
<table class="columns">
     
<tr>
       
<td><div id="piechart_div" style="border: 1px solid #ccc"></div></td>
       
<td><div id="barchart_div" style="border: 1px solid #ccc"></div></td>
     
</tr>
   
</table>
 
</body>
</html>