Google visualization 当没有数据时,如何显示空的谷歌图表?

Google visualization 当没有数据时,如何显示空的谷歌图表?,google-visualization,Google Visualization,考虑绘制柱状图,但我没有从数据源获取任何数据,如何绘制空图表,而不是显示红色默认消息“Table has no columns”?我要做的是使用1列和1个数据点(设置为0)初始化图表。然后,每当添加数据时,我检查是否只有一列,并且它是伪列,然后删除它。我还隐藏图例以使其不与虚拟列一起出现,然后在添加新列时添加它 下面是一些示例代码,您可以将其插入到实现我所说内容的。您应该看到空图表2秒钟,然后添加数据并显示列 var数据、选项、图表; 函数drawVisualization(){ data=go

考虑绘制柱状图,但我没有从数据源获取任何数据,如何绘制空图表,而不是显示红色默认消息“Table has no columns”?

我要做的是使用1列和1个数据点(设置为0)初始化图表。然后,每当添加数据时,我检查是否只有一列,并且它是伪列,然后删除它。我还隐藏图例以使其不与虚拟列一起出现,然后在添加新列时添加它

下面是一些示例代码,您可以将其插入到实现我所说内容的。您应该看到空图表2秒钟,然后添加数据并显示列

var数据、选项、图表;
函数drawVisualization(){
data=google.visualization.arrayToDataTable([
['Time','dummy'],
['', 0],
]);
选项={
标题:“我的图表”,
宽度:600,高度:400,
哈克斯:{标题:“时间”},
图例:{位置:'none'}
};
//创建并绘制可视化。
chart=新的google.visualization.ColumnChart(document.getElementById('visualization');
图表绘制(数据、选项);
setTimeout('addData(“12:00”,10)”,2000年);
setTimeout('addData(“12:10”,20)”,3000);
}
函数addData(x,y){
if(data.getColumnLabel(1)='dummy'){
data.addColumn('number','Your Values','col_id');
数据删除列(1);
options.legend={position:'right'};
}
data.addRow([x,y]);
图表绘制(数据、选项);
}​

解决此问题的更好方法可能是使用注释列而不是数据列,如下所示。使用此解决方案,您不需要使用任何setTimeout或自定义函数来删除或隐藏列。尝试一下,将下面给定的代码粘贴到中


我这样做的方法是禁用饼图切片、关闭工具提示、填充一个假值并将其置为灰色。我相信有更聪明的方法可以做到这一点,但这对我来说是可行的,而其他方法则不然

唯一的缺点是它将图例中的两个项目都设置为灰色。我想你可以只添加第三项,使其仅在图例上不可见。不过我喜欢这种方式

function drawChart() {
// Define the chart to be drawn.
  data = new google.visualization.DataTable();
  data.addColumn({type: 'string', label: 'Result'});
  data.addColumn({type: 'number', label: 'Count'});
  data.addRows([
          ['Value A', 0],
          ['Value B', 0]
  ]);

  var opt_pieslicetext = null;
  var opt_tooltip_trigger = null;
  var opt_color = null;
  if (data.getValue(1,1) == 0 && data.getValue(0,1) == 0) {
     opt_pieslicetext='none';
     opt_tooltip_trigger='none'
     data.setCell(1,1,.1);
     opt_color= ['#D3D3D3'];
  } 
  chart = new google.visualization.PieChart(document.getElementById('mydiv'));
  chart.draw(data, {sliceVisibilityThreshold:0, pieSliceText: opt_pieslicetext, tooltip: { trigger: opt_tooltip_trigger }, colors: opt_color } );
}
function drawChart() {
// Define the chart to be drawn.
  data = new google.visualization.DataTable();
  data.addColumn({type: 'string', label: 'Result'});
  data.addColumn({type: 'number', label: 'Count'});
  data.addRows([
          ['Value A', 0],
          ['Value B', 0]
  ]);

  var opt_pieslicetext = null;
  var opt_tooltip_trigger = null;
  var opt_color = null;
  if (data.getValue(1,1) == 0 && data.getValue(0,1) == 0) {
     opt_pieslicetext='none';
     opt_tooltip_trigger='none'
     data.setCell(1,1,.1);
     opt_color= ['#D3D3D3'];
  } 
  chart = new google.visualization.PieChart(document.getElementById('mydiv'));
  chart.draw(data, {sliceVisibilityThreshold:0, pieSliceText: opt_pieslicetext, tooltip: { trigger: opt_tooltip_trigger }, colors: opt_color } );
}