Google图表数据数组由javascript输入值组成
我用谷歌图表制作图表有问题。 我的页面需要选择正确的数组,用输入值修复它,然后在折线图上显示它。 脚本代码:Google图表数据数组由javascript输入值组成,javascript,html,charts,google-visualization,Javascript,Html,Charts,Google Visualization,我用谷歌图表制作图表有问题。 我的页面需要选择正确的数组,用输入值修复它,然后在折线图上显示它。 脚本代码: <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type = "text/javascript" src = "prototype.js"></script> <script type="te
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type = "text/javascript" src = "prototype.js"></script>
<script type="text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback();
function fixArray(){
var array_0 = [['Day', 'research', 'Weight'], ['32', 1898, null], ['33', 2432, null], ['34', 2533, null], ['35', 2267, null],
['36', 2649, null], ['37', 3018, null], ['38', 3264, null], ['39', 3460, null],
['40', 3561, null], ['41', 3706, null], ['42', 3576 , null], ['43', 3465, null]];
var array_1 = [['Day', 'research', 'Weight'], ['32', 1405, null], ['33', 1779, null], ['34', 2158, null], ['35', 2272, null],
['36', 2493, null], ['37', 2783, null], ['38', 2984, null], ['39', 3185, null],
['40', 3310, null], ['41', 3426, null], ['42', 3531, null], ['43', 3784, null]];
.
.
.
var array_10 = [['Day', 'research', 'Weight'], ['32', 2605 ,null], ['33', 3402, null], ['34', 3500, null], ['35', 3705, null],
['36', 3810, null], ['37', 3856, null], ['38', 3955, null], ['39', 4120, null],
['40', 4260, null], ['41', 4100, null], ['42', 4000 ,null], ['43', 3900, null]];
var fixed = new Array(12); // defining empty 2D array to the fixed array that will be show
for (var i = 0; i < fixed.length; i++)
fixed[i] = [];
var number = Number($('number').getValue());
var day = document.getElementById("day");
var weight = Number($('weight').getValue());
switch (number) {
case 0:
for(i=1; i<=12; i++){
if(array_0[i][0] == day)
array_0[i][2] = weight;
}
fixed = array_0;
break;
case 1:
for(i=1; i<=12; i++){
if(array_1[i][0] == day)
array_1[i][2] = weight;
}
fixed = array_1;
break;
.
.
.
case 10:
for(i=1; i<=12; i++){
if(array_10[i][0] == day)
array_10[i][2] = weight;
}
fixed = array_10;
break;
default:
alert("Not Enough Data");
break;
}
drawVisualization(fixed);
}
function drawVisualization(fixed) {
var data = google.visualization.arrayToDataTable(Array.from(fixed));
var options = {
title : 'Results',
vAxis: {title: 'Weight'},
hAxis: {title: 'Day'},
seriesType: 'line',
series: {1: {type: 'scatter'}}
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
</script>
当我尝试运行页面并输入值时,它只显示红色错误,其中是图表div。
当我更改google.charts.setOnLoadCallback()时,我可以看到错误是什么
togoogle.charts.setOnLoadCallback(fixArray)代码>错误为“给定轴上的所有系列必须具有相同的数据类型×”
我想这不是修复数组的问题,因为当我尝试drawVisualization(array_0)
检查代码时,它会显示相同的错误
这里有什么问题?setOnLoadCallback的要点是传递一个函数,
这样您就可以知道google图表何时完成加载。
setOnLoadCallback
将调用传递给它的函数
e、 g.--加载完成后,将调用fixArray
google.charts.setOnLoadCallback(fixArray);
您还可以使用load
语句返回的承诺
google.charts.load('current', {
packages: ['corechart']
}).then(fixArray);
接下来,当使用jquery按id获取元素时,
您需要在id的前面添加英镑符号(#number
)
$('#number').val()
您可以使用val
方法获取值。
另外,在这里,您将获得元素,
不是元素的值
var day = document.getElementById("day");
只需使用与其他相同的
var day = Number($('#day').val());
接下来,我给了输入元素一个默认值,
因此,图表将在第一次运行时绘制
不确定您希望页面如何“流动”
请参阅以下工作片段
google.charts.load('current'{
软件包:['corechart']
}).然后(固定数组);
函数fixArray(){
变量数组_0=[
[‘天’、‘研究’、‘体重’],
[32',1898,空],
[33',2432,空],
[34',2533,空],
[35',2267,空],
[36',2649,空],
[37',3018,空],
[38',3264,空],
[39',3460,空],
[40',3561,空],
[41',3706,空],
[42',3576,空],
[43',3465,空]
];
变量数组_1=[
[‘天’、‘研究’、‘体重’],
[32',1405,空],
[33',1779,空],
[34',2158,空],
[35',2272,空],
[36',2493,空],
[37',2783,空],
[38',2984,空],
[39',3185,空],
[40',3310,空],
[41',3426,空],
[42',3531,空],
[43',3784,空]
];
变量数组_10=[
[‘天’、‘研究’、‘体重’],
[32',2605,空],
[33',3402,空],
[34',3500,空],
[35',3705,空],
[36',3810,空],
[37',3856,空],
[38',3955,空],
[39',4120,空],
[40',4260,空],
[41',4100,空],
[42',4000,空],
['43',3900,空]
];
var fixed=new Array(12);//为将要显示的固定数组定义空的2D数组
对于(变量i=0;i 对于(i=1;i而言,setOnLoadCallback
的要点是传递一个函数,
这样您就可以知道google图表何时完成加载。
setOnLoadCallback
将调用传递给它的函数
e、 g.--加载完成后,将调用fixArray
google.charts.setOnLoadCallback(fixArray);
您还可以使用load
语句返回的承诺
google.charts.load('current', {
packages: ['corechart']
}).then(fixArray);
接下来,当使用jquery按id获取元素时,
您需要在id的前面添加英镑符号(#number
)
$('#number').val()
您可以使用val
方法获取值。
另外,在这里,您将获得元素,
不是元素的值
var day = document.getElementById("day");
只需使用与其他相同的
var day = Number($('#day').val());
接下来,我给了输入元素一个默认值,
因此,图表将在第一次运行时绘制
不确定您希望页面如何“流动”
请参阅以下工作片段
google.charts.load('current'{
软件包:['corechart']
}).然后(固定数组);
函数fixArray(){
变量数组_0=[
[‘天’、‘研究’、‘体重’],
[32',1898,空],
[33',2432,空],
[34',2533,空],
[35',2267,空],
[36',2649,空],
[37',3018,空],
[38',3264,空],
[39',3460,空],
[40',3561,空],
[41',3706,空],
[42',3576,空],
[43',3465,空]
];
变量数组_1=[
[‘天’、‘研究’、‘体重’],
[32',1405,空],
[33',1779,空],
[34',2158,空],
[35',2272,空],
[36',2493,空],
[37',2783,空],
[38',2984,空],
[39',3185,空],
[40',3310,空],
[41',3426,空],
[42',3531,空],
[43',3784,空]
];
变量数组_10=[
[‘天’、‘研究’、‘体重’],
[32',2605,空],
[33',3402,空],
[34',3500,空],
[35',3705,空],
[36',3810,空],
[37',3856,空],
[38',3955,空],
[39',4120,空],
[40',4260,空],
[41',4100,空],
[42',4000,空],
['43',3900,空]
];
var fixed=new Array(12);//为将要显示的固定数组定义空的2D数组
对于(变量i=0;i