Javascript 没有数据的谷歌图表馅饼
我试图在我的民意调查网站上使用谷歌图表。一切都很顺利,直到我没有选票(例如,没有人回答这个问题)。该图表甚至没有出现,正如您在本例中看到的: 我甚至将属性sliceVisibilityThreshold设置为0。 有可能有一个包含任何数据的饼图吗? 对我来说行吗?错误是什么Javascript 没有数据的谷歌图表馅饼,javascript,php,charts,google-visualization,Javascript,Php,Charts,Google Visualization,我试图在我的民意调查网站上使用谷歌图表。一切都很顺利,直到我没有选票(例如,没有人回答这个问题)。该图表甚至没有出现,正如您在本例中看到的: 我甚至将属性sliceVisibilityThreshold设置为0。 有可能有一个包含任何数据的饼图吗? 对我来说行吗?错误是什么 在外部js部分添加js,只需将url复制到那里,就可以了更改透视图 var data = google.visualization.arrayToDataTable([ ['Task', 'Hours
在外部js部分添加js
,只需将url复制到那里,就可以了更改透视图
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 0],
['Eat', 0],
['Commute', 0],
['Watch TV', 0],
['Sleep', 0],
['No activities or no response', 24]
]);
或
您可以测试dataTable以查看是否存在响应,然后相应地调整显示内容
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 0],
['Eat', 0],
['Commute', 0],
['Watch TV', 0],
['Sleep', 0]
]);
if(hasResponses(data, 1){
...
[build your options array and draw you chart]
...
}else{
...
[display something else instead of the chart (i.e., a graphic or text indicating that the question has no responses).]
}
}
function hasResponses(datasource, column){
var sumValues = 0;
for(var i = 0; i < datasource.getNumberOfRows(); ++i) {
sumValues = sumValues + datasource.getValue(column, i);
}
if(sumValues > 0){
return true;
}else{
return false;
}
}
google.setOnLoadCallback(绘图图);
函数绘图图(){
var data=google.visualization.arrayToDataTable([
[“任务”,“每天工作小时数”],
['Work',0],
[Eat',0],
[‘通勤’,0],
[“看电视”,0],
[Sleep',0]
]);
如果(数据,1){
...
[构建选项阵列并绘制图表]
...
}否则{
...
[显示其他内容,而不是图表(即,表明问题没有答案的图形或文本)。]
}
}
函数hasResponses(数据源,列){
var sumValues=0;
对于(var i=0;i0){
返回true;
}否则{
返回false;
}
}
这假设每个受访者将至少为一项活动(工作、睡眠等)提供大于0的值,如果不是,则数据收集(调查)应具有一个全面的类别(即“其他”等),允许您在不影响回答完整性的情况下强制回答问题
假设您的数据来自其他数据库(不是手动输入javascript),一种更快、更简单的方法可能涉及在用javascript构建数据表之前计算数据集中的响应数。然后,使用与上述类似的逻辑,如果存在少于一个响应,则显示另一条消息。如果没有任何类别的投票,它应该显示什么?饼图的百分比是“0”?还有,这和海图有什么关系?你们的表中都有数据,我的问题是如果你们没有任何数据,每个选项都简单漂亮!
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work no response', 4.8],
['Eat no response', 4.8],
['Commute no response', 4.8],
['Watch TV no response', 4.8],
['Sleep no response', 4.8]
]);
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 0],
['Eat', 0],
['Commute', 0],
['Watch TV', 0],
['Sleep', 0]
]);
if(hasResponses(data, 1){
...
[build your options array and draw you chart]
...
}else{
...
[display something else instead of the chart (i.e., a graphic or text indicating that the question has no responses).]
}
}
function hasResponses(datasource, column){
var sumValues = 0;
for(var i = 0; i < datasource.getNumberOfRows(); ++i) {
sumValues = sumValues + datasource.getValue(column, i);
}
if(sumValues > 0){
return true;
}else{
return false;
}
}