谷歌图表添加数组中的数据
Google Chart add data from array
大家好,我正在尝试用谷歌图表绘制图表
这是我的代码:
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawStuff);
function drawStuff() {
var data = new google.visualization.arrayToDataTable([
['', 'Total: '],
[info["name"] , info["qn"]], //first element
[info["name"] , info["qn"]], //second element
]);
var options = {
legend: { position: 'none' },
axes: {
},
bar: { groupWidth: "80%" }
};
var chart = new google.charts.Bar(document.getElementById('top_x_div'));
// Convert the Classic options to Material options.
chart.draw(data, google.charts.Bar.convertOptions(options));
};
我的问题是:如何将数组中的数据插入图表?
PS:第一个元素被认为是数组的第一个元素,第二个元素被假设是第二个。
我的阵列:
var cont = 1;
var rowtbl = document.getElementById("tabella").rows.length;
rowtbl = rowtbl - 1; //number rows table
while(cont <= rowtbl){
var nomi;
var qnt;
nomi = document.getElementById("tabella").rows[cont].cells[0].innerHTML;
qnt = document.getElementById("tabella").rows[cont].cells[1].innerHTML;
var info = {name: nomi, qn: qnt};
cont = cont +1;
}
如果您有一个对象数组,类似于。。。
var info = [
{
name: "Test 1",
qn: 1
},
{
name: "Test 2",
qn: 2
}
];
那么你就可以访问这样的元素
第一个元素——info[0]
第二个元素——info[1]
对于每个元素的对象键,可以通过两种方式访问info[0]["name"]
--或--info[0].name
您还可以使用Array.forEach
来添加循环中的所有行。
请参阅以下工作示例,相同的行被添加两次,
只是为了展示添加行的不同方式。。。
google.charts.load('current', {
callback: function () {
var info = [
{
name: "Test 1",
qn: 1
},
{
name: "Test 2",
qn: 2
}
];
var data = new google.visualization.arrayToDataTable([
['', 'Total: '],
// add each element manually
[info[0]["name"] , info[0]["qn"]], //first element
[info[1]["name"] , info[1]["qn"]], //second element
]);
// add each element via forEach loop
info.forEach(function(value, index, array){
data.addRow([
value.name,
value.qn
]);
})
var options = {
legend: { position: 'none' },
bar: { groupWidth: "80%" }
};
var chart = new google.charts.Bar(document.getElementById('top_x_div'));
chart.draw(data, google.charts.Bar.convertOptions(options));
},
packages: ['bar']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="top_x_div"></div>
编辑——基于注释中的代码
可以在while
语句的末尾使用data.addRow
注意对data
的列标题所做的更改
google.charts.load('current', {
callback: function () {
var cont = 1;
var rowtbl = document.getElementById("tabella").rows.length;
rowtbl = rowtbl - 1;
// use object notation for column headings
var data = new google.visualization.arrayToDataTable([
[{type: 'string', label: ''}, {type: 'number', label: 'Total: '}]
]);
//number rows table
while(cont <= rowtbl){
var nomi;
var qnt;
nomi = document.getElementById("tabella").rows[cont].cells[0].innerHTML;
qnt = document.getElementById("tabella").rows[cont].cells[1].innerHTML;
var info = {
name: nomi,
qn: qnt
};
// add row to google data
data.addRow([
info.name,
parseFloat(info.qn)
]);
cont = cont +1;
}
var options = {
legend: { position: 'none' },
bar: { groupWidth: "80%" }
};
var chart = new google.charts.Bar(document.getElementById('top_x_div'));
chart.draw(data, google.charts.Bar.convertOptions(options));
},
packages: ['bar']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<table id="tabella">
<tr>
<th>Column 1</th>
<th>Column 2</th>
</tr>
<tr>
<td>Test 1</td>
<td>1</td>
</tr>
<tr>
<td>Test 2</td>
<td>2</td>
</tr>
<tr>
<td>Test 3</td>
<td>3</td>
</tr>
</table>
<div id="top_x_div"></div>
相关文章:
- 使用数据数组创建多个类似组件
- WebAudio API数据数组大小
- Jquery 循环一次或在数据数组中显示一次数据
- Cakephp 访问不在模型数据数组上的输入
- 使用来自 Ajax 响应的 JSON 数据数组
- Angular JS(离子)数据数组到$scope元素
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 如何使用for循环语句通过Ajax发送大数据数组
- 压缩 JS 中的数据数组
- 传递的参数D3提示回调是完整的数据数组
- 如何在数据数组的每次迭代中创建一个内容为“i+1”的新 HTML 元素
- 在 laravel 4 上使用循环将数据数组存储到单个数组中
- 为什么它说输入数据数组的格式不正确 jqchart.
- Javascript - 使用变量 RegExp 匹配数据数组中的多个关键字
- 尝试将数据数组设置为从视图调用函数后$scope
- 如何在 PHP 中创建 jqplot 数据数组
- 如何使用该数据数组从左向右移动画布
- 如何根据数字列从 Parse 中对数据数组进行排序
- 为什么 php json 响应不会将数据数组发送回 ajax jquery 请求
- 如何将内容添加到 JQuery Flot 图表数据数组工具提示