无法在单个网页上加载所有谷歌图表。我错过了什么?

时间:2016-04-06 15:29:19

标签: javascript html javascript-events javascript-objects google-chartwrapper

我正在使用谷歌图表api来显示图表但是,最后一张图表没有在页面上加载,我错过了什么。 请尽快为我提供解决方案。

<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

    function drawcharts() {

        var data1 = google.visualization.arrayToDataTable(
                [
                    ['Year', 'Derby', 'Bristol', 'Warrington', 'Indianapolis', 'Dahlewitz', 'Montreal'],
                    ['2012', 143754.00 , 7607.59, 958.51, 6029.12 , 13605.12, 586.00],
                    ['2013', 186065.32, 1674.50, 1823.93, 9574.24, 23935.14, 743.43],
                    ['2014', 251238.53, 0, 0, 10154.41, 19926.63, 363.71],
                    ['2015', 323134.57, 0, 0, 10400.66, 12002.84, 555.86],
                    ['2016', 467058.18, 0, 0, 10529.27, 5844.90, 0] ,
                    ['2017', 391209.43, 0, 0, 11072.43, 3603.65, 0] ,
                    ['2018', 460257.40, 0, 0, 12031.69, 1833.52, 0] ,
                    ['2019', 744114.34, 0, 0, 13012.83, 1517.89, 0] ,
                    ['2020', 1484193.59, 0, 0, 14274.78, 1292.55, 0]
                ]);

        var options1 = {
            title:'Total CPU Hours Per Year By Site',
            hAxis:{title:'Year', titleTextStyle:{color:'black'}},
            vAxis:{title:'1000s CPU Hours', titleTextStyle:{color:'black'}}
        };

        var chartA = new google.visualization.AreaChart(document.getElementById('chart_div'));
        chartA.draw(data1, options1);

        }

    google.setOnLoadCallback(drawcharts);
    google.load("visualization", "1", {packages:["corechart"]});

</script>

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">

    function drawcharts1() {

        var data2 = google.visualization.arrayToDataTable(
                [
                    ['Year', 'Derby', 'Bristol', 'Warrington', 'RRC', 'RRD', 'Canada'],
                    ['2012', 275.82, 1.145, 0, 2.71, 18.44, 0],
                    ['2013', 398.29, 0.04, 0, 3.01, 29.38, 0],
                    ['2014', 509.84, 0.04, 0 , 3.29, 26.05, 0],
                    ['2015', 723.08, 0, 0, 3.54, 13.09, 0],
                    ['2016', 951.38, 0, 0, 3.90, 7.59, 0] ,
                    ['2017', 609.01, 0, 0, 4.32, 3.92, 0] ,
                    ['2018', 1002.65, 0 , 0, 4.69, 1.70, 0] ,
                    ['2019', 1133.86, 0, 0, 4.93, 1.31, 0] ,
                    ['2020', 2127, 770 , 770, 5.31, 0.79, 0]
                ]);

        var options2 = {
            title:'Total CPU Hours Required For FE Code',
            hAxis:{title:'Year', titleTextStyle:{color:'black'}},
            vAxis:{title:'1000s CPU Hours', titleTextStyle:{color:'black'}}
        };

        var chartB = new google.visualization.AreaChart(document.getElementById('chart_divs'));
        chartB.draw(data2, options2);
    }

    google.setOnLoadCallback(drawcharts1);
    google.load("visualization", "1", {packages:["corechart"]});

</script>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <!-- load Google AJAX API -->
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>

    <script type="text/javascript">

google.charts.load('current', {'packages':['bar']});
   google.charts.setOnLoadCallback(drawChart);
  function drawChart() {
  var data = google.visualization.arrayToDataTable([
      ['Day', 'Submitted', 'Published', 'Rejected','Created'],
      ['29-MAR-16', 100, 410, 230,40],
      ['30-MAR-16', 170, 346, 302,430],
      ['31-MAR-16', 60, 100, 130,40],
      ['1-APRIL-16', 302, 350, 520,40]
    ]);


    var options = {
      chart: {
        title: 'Company Performance',
        subtitle: 'Sales, Expenses, and Profit: 2014-2017',
      },
      bars: 'horizontal', // Required for Material Bar Charts.
      hAxis: {format: 'decimal'},
      height: 500,
      colors: ['#1b9e77', '#d95f02', '#7570b3', '#db7f0b']
    };

    var chart = new google.charts.Bar(document.getElementById('chart_div1'));

    chart.draw(data, google.charts.Bar.convertOptions(options));

  }
    </script> 

<script type="text/javascript">
  google.charts.load('current', {'packages':['corechart']});
  google.charts.setOnLoadCallback(drawChart3);

  function drawChart3() {
    var data3 = google.visualization.arrayToDataTable([
      ['Year', 'Sales', 'Expenses'],
      ['2004',  1000,      400],
      ['2005',  1170,      460],
      ['2006',  660,       1120],
      ['2007',  1030,      540]
    ]);

    var options3 = {
      title: 'Company Performance',
      curveType: 'function',
      legend: { position: 'bottom' }
    };

    var chart3 = new google.visualization.LineChart(document.getElementById('curve_chart'));

    chart3.draw(data3, options3);
  }
</script>

</head>
<body>

 <div id="chart_div1" style="width: 900px; height: 500px;"></div>
  <p></p>
  <div id="chart_div" style="width: 900px; height: 500px;"></div>
   <p></p>

   <div id="chart_divs" style="width: 900px; height: 500px;"></div>
   <p></p>

   <div id="curve_chart" style="width: 900px; height: 500px"></div>
   <p></p>

   </body>
   </html>

div id =&#34; curve_chart&#34; style =&#34; width:900px;身高:500px&#34;对于这一行,它显示为空白,但如果我单独使用相同的脚本,它将显示图表。原因是什么。??

1 个答案:

答案 0 :(得分:0)

我建议您将所有“drawcharts”函数从一个回调调用到google.setOnLoadCallback

这是一个有效的jsfiddle。 https://jsfiddle.net/oakley808/z5j9u2sw/

google.load("visualization", "1", {
  packages: ["corechart", "bar"]
});
google.setOnLoadCallback(function(){
    drawcharts()
    drawcharts1()
    drawChart()
    drawChart3()
})

function drawcharts() {

  var data1 = google.visualization.arrayToDataTable(
    [
      ['Year', 'Derby', 'Bristol', 'Warrington', 'Indianapolis', 'Dahlewitz', 'Montreal'],
      ['2012', 143754.00, 7607.59, 958.51, 6029.12, 13605.12, 586.00],
      ['2013', 186065.32, 1674.50, 1823.93, 9574.24, 23935.14, 743.43],
      ['2014', 251238.53, 0, 0, 10154.41, 19926.63, 363.71],
      ['2015', 323134.57, 0, 0, 10400.66, 12002.84, 555.86],
      ['2016', 467058.18, 0, 0, 10529.27, 5844.90, 0],
      ['2017', 391209.43, 0, 0, 11072.43, 3603.65, 0],
      ['2018', 460257.40, 0, 0, 12031.69, 1833.52, 0],
      ['2019', 744114.34, 0, 0, 13012.83, 1517.89, 0],
      ['2020', 1484193.59, 0, 0, 14274.78, 1292.55, 0]
    ]);

  var options1 = {
    title: 'Total CPU Hours Per Year By Site',
    hAxis: {
      title: 'Year',
      titleTextStyle: {
        color: 'black'
      }
    },
    vAxis: {
      title: '1000s CPU Hours',
      titleTextStyle: {
        color: 'black'
      }
    }
  };

  var chartA = new google.visualization.AreaChart(document.getElementById('chart_div'));
  chartA.draw(data1, options1);

}




function drawcharts1() {

  var data2 = google.visualization.arrayToDataTable(
    [
      ['Year', 'Derby', 'Bristol', 'Warrington', 'RRC', 'RRD', 'Canada'],
      ['2012', 275.82, 1.145, 0, 2.71, 18.44, 0],
      ['2013', 398.29, 0.04, 0, 3.01, 29.38, 0],
      ['2014', 509.84, 0.04, 0, 3.29, 26.05, 0],
      ['2015', 723.08, 0, 0, 3.54, 13.09, 0],
      ['2016', 951.38, 0, 0, 3.90, 7.59, 0],
      ['2017', 609.01, 0, 0, 4.32, 3.92, 0],
      ['2018', 1002.65, 0, 0, 4.69, 1.70, 0],
      ['2019', 1133.86, 0, 0, 4.93, 1.31, 0],
      ['2020', 2127, 770, 770, 5.31, 0.79, 0]
    ]);

  var options2 = {
    title: 'Total CPU Hours Required For FE Code',
    hAxis: {
      title: 'Year',
      titleTextStyle: {
        color: 'black'
      }
    },
    vAxis: {
      title: '1000s CPU Hours',
      titleTextStyle: {
        color: 'black'
      }
    }
  };

  var chartB = new google.visualization.AreaChart(document.getElementById('chart_divs'));
  chartB.draw(data2, options2);
}



function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['Day', 'Submitted', 'Published', 'Rejected', 'Created'],
    ['29-MAR-16', 100, 410, 230, 40],
    ['30-MAR-16', 170, 346, 302, 430],
    ['31-MAR-16', 60, 100, 130, 40],
    ['1-APRIL-16', 302, 350, 520, 40]
  ]);


  var options = {
    chart: {
      title: 'Company Performance',
      subtitle: 'Sales, Expenses, and Profit: 2014-2017',
    },
    bars: 'horizontal', // Required for Material Bar Charts.
    hAxis: {
      format: 'decimal'
    },
    height: 500,
    colors: ['#1b9e77', '#d95f02', '#7570b3', '#db7f0b']
  };

  var chart = new google.charts.Bar(document.getElementById('chart_div1'));

  chart.draw(data, google.charts.Bar.convertOptions(options));

}




function drawChart3() {
  var data3 = google.visualization.arrayToDataTable([
    ['Year', 'Sales', 'Expenses'],
    ['2004', 1000, 400],
    ['2005', 1170, 460],
    ['2006', 660, 1120],
    ['2007', 1030, 540]
  ]);

  var options3 = {
    title: 'Company Performance',
    curveType: 'function',
    legend: {
      position: 'bottom'
    }
  };

  var chart3 = new google.visualization.LineChart(document.getElementById('curve_chart'));

  chart3.draw(data3, options3);
}