简体   繁体   English

谷歌图表 API 问题

[英]Google Charts API problems

I'm using PHP to make a call to Yahoo Finance's API for various financial markers.我正在使用 PHP 为各种金融标记调用 Yahoo Finance 的 API。 I've been graphing these using Google's Chart API.我一直在使用 Google 的 Chart API 绘制这些图表。 I have 4 charts which have always shown up until a few days ago.我有 4 个图表,它们一直显示到几天前。 I can't figure out what's going on.我无法弄清楚发生了什么。 It will only show one graph at a time.它一次只会显示一张图表。 All of the data is being loaded successfully for all 4 graphs, but only show one graph.所有 4 个图形的所有数据都已成功加载,但仅显示一个图形。 Any advice would be appreciated!任何意见,将不胜感激!

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

<br>
<script type="text/javascript">
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Day');
  data.addColumn('number', 'Stock Index(%)');


  data.addRows([
    <?=$stockIndex?>
  ]);

  var options = {
    chart: {
      title: 'Stock Index',
    },
    width: 1100,
    height: 900
  };
  var chart = new google.charts.Line(document.getElementById('stocks'));
  chart.draw(data, options);
  }
  </script>



<script type="text/javascript">
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Day');
  data.addColumn('number', 'Stock Index(%)');
  data.addColumn('number', '12-Day EMA');  
  data.addColumn('number', '26-Day EMA');   

  data.addRows([
    <?=$stockTwelveTwentySix?>
  ]);

  var options = {
    chart: {
      title: 'Stock Index w/12-day and 26-day EMA',
    },
      width: 1100,
    height: 900
  };
  var chart = new google.charts.Line(document.getElementById('twelvetwentysixday'));
  chart.draw(data, options);
}
</script>

 <script type="text/javascript">
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Day');
  data.addColumn('number', 'Stock Index(%)');
  data.addColumn('number', '12-Day EMA');    

  data.addRows([
    <?=$stockTwelve?>
  ]);

  var options = {
    chart: {
      title: 'Stock Index w/12-day EMA',
    },
     width: 1100,
    height: 900
  };
  var chart = new google.charts.Line(document.getElementById('twelvetwentyday'));
  chart.draw(data, options);
}
</script>

<script type="text/javascript">
google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Day');
  data.addColumn('number', 'Stock Index(%)');
  data.addColumn('number', 'Lower BB');
  data.addColumn('number', 'Upper BB');    

  data.addRows([
    <?= $bb ?>
  ]);

  var options = {
    chart: {
      title: 'Stock Index w/Bollinger Band Comparisons',
    },
     width: 1100,
    height: 900
  };
  var chart = new google.charts.Line(document.getElementById('Bollinger'));
  chart.draw(data, options);
}

 </script>


<div id="stocks"></div>
<br>
<div id="twelvetwentyday"></div>
<br>
<div id="twelvetwentysixday"></div>
<br>
<div id="Bollinger"></div>

Solution is easy U will make only one callback.Dont write function for every chart.解决方案很简单,你只会做一个回调。不要为每个图表都写函数。 do it all in one function.在一个功能中完成所有操作。

    google.load('visualization', '1.1', {packages: ['line']});
google.setOnLoadCallback(drawChart);
function drawChart() {
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Day');
  data.addColumn('number', 'Stock Index(%)');
  data.addRows([
    <?=$stockIndex?>
  ]);

  var options = {
    chart: {
      title: 'Stock Index',
    },
    width: 1100,
    height: 900
  };
  var chart = new google.charts.Line(document.getElementById('stocks'));
  chart.draw(data, options);


  var data2 = new google.visualization.DataTable();
  data2.addColumn('number', 'Day');
  data2.addColumn('number', 'Stock Index(%)');
  data2.addColumn('number', '12-Day EMA');  
  data2.addColumn('number', '26-Day EMA');   

  data2.addRows([
    <?=$stockTwelveTwentySix?>
  ]);

  var options2 = {
    chart: {
      title: 'Stock Index w/12-day and 26-day EMA',
    },
      width: 1100,
    height: 900
  };

  var chart2 = new google.charts.Line(document.getElementById('twelvetwentysixday'));
  chart2.draw(data2, options2);



  var data3 = new google.visualization.DataTable();
  data3.addColumn('number', 'Day');
  data3.addColumn('number', 'Stock Index(%)');
  data3.addColumn('number', '12-Day EMA');    

  data3.addRows([
    <?=$stockTwelve?>
  ]);

  var options3 = {
    chart: {
      title: 'Stock Index w/12-day EMA',
    },
     width: 1100,
    height: 900
  };
  var chart3 = new google.charts.Line(document.getElementById('twelvetwentyday'));
  chart3.draw(data3, options3);


  var data4 = new google.visualization.DataTable();
  data4.addColumn('number', 'Day');
  data4.addColumn('number', 'Stock Index(%)');
  data4.addColumn('number', 'Lower BB');
  data4.addColumn('number', 'Upper BB');    

  data4.addRows([
    <?= $bb ?>
  ]);

  var options4 = {
    chart: {
      title: 'Stock Index w/Bollinger Band Comparisons',
    },
     width: 1100,
    height: 900
  };
  var chart4 = new google.charts.Line(document.getElementById('Bollinger'));
  chart.draw(data4, options4);
  }

do it somthing like that .做那样的事情。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM