[英]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.