我试图在我的民意调查中使用Google图表'网站。一切正常,直到我没有表决票(例如,没有人回答这个问题)。该图表甚至不会显示,如您在此示例中所示:http://jsfiddle.net/au9prxsg/3/
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]
]);
var options = {
title: 'My Daily Activities',
sliceVisibilityThreshold: 0
};
var chart = new google.visualization.PieChart(document.getElementById('piechart'));
chart.draw(data, options);
}
我甚至把属性sliceVisibilityThreshold:0。 是否可以使用包含任何数据的饼图?
答案 0 :(得分:1)
改变观点
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]
]);
或
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]
]);
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以测试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;
}
}
这假设每个受访者都会提供一个&gt; 0表示至少有一项活动(工作,睡眠等),如果没有,那么数据收集(调查)应该有一个包罗万象的类别(即&#34;其他&#34;等),这将允许你在不影响回复完整性的情况下强制回答问题。
假设您的数据来自其他数据库(不是手动输入到javascript),更快,更简单的方法可能涉及在javascript中构建数据表之前计算数据集中的响应数。然后,使用与上面类似的逻辑,如果存在少于一个响应,则显示备用消息。