【发布时间】:2016-05-01 05:10:00
【问题描述】:
我正在使用 Google Charts 折线图,我无法将其绑定到图表范围过滤器。
这是我尝试过的: 容器:
<div id="dashboard_div">
<!--Divs that will hold each control and chart-->
<div id="control_div" style="width: 100%; height: 100%"></div>
<div id="daily_container_count_lineChart" style="width: 100%; height: 100%"></div>
</div>
JS部分:
var chart = new google.visualization.ChartWrapper({
chartType: 'LineChart',
containerId: 'daily_container_count_lineChart',
options: {
theme: 'maximized'
}
});
var control = new google.visualization.ControlWrapper({
controlType: 'ChartRangeFilter',
containerId: 'control_div',
options: {
filterColumnIndex: 0
}
});
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard_div'));
dashboard.bind([control], [chart]);
dashboard.draw(data);
我收到以下错误代替网页中的仪表板。控制台没有错误。
一个或多个参与者绘制失败()
您使用错误类型的数据而不是 DataTable 或 DataView 调用了 draw() 方法
您使用错误类型的数据而不是 DataTable 或 DataView 调用了 draw() 方法
如果我尝试在没有图表范围过滤器的情况下仅绘制折线图,如下所示,它可以正常工作而不会出现任何错误:
不使用 ChartRangeFilter 仅绘制折线图:
var dailyContainerChart = new google.charts.Line(document.getElementById('daily_container_count_lineChart'));
dailyContainerChart.draw(data, {allowHtml: true, width: '100%', height: '100%'});
加载数据:
var getDailyContainerLineData = function (sourceData)
{
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'VIC - STH CRT');
data.addColumn('number', 'NSW - MINTO');
data.addColumn('number', 'QLD - PINKENBA');
data.addColumn('number', 'WA - HAZELMERE');
for(k =1;k< sourceData.getNumberOfColumns();k++)
{
var rowData = new Array();
var rowStart = sourceData.getColumnLabel(k);
rowData.push(new Date(rowStart));
for(l =0;l<sourceData.getNumberOfRows()-1;l++) // we don't want the 'total' row from the daily container table
{
var test = sourceData.getValue(l, k);
if(typeof test === 'string')
{
var date = Date.parse(test);
rowData.push(date);
}
else
{
rowData.push(test);
}
}
data.addRow(rowData);
}
return data;
}
上面返回的数据用于绘制仪表盘和线图。
我的问题是: 为什么我尝试使用 ChartRangeFilter 绘制折线图时出现错误的数据类型错误,而仅绘制折线图时却没有
我可以让 ChartRangeFiler 同时过滤具有不同数据源的 2 个图表(表格和折线图)吗?
干杯。
【问题讨论】:
-
data是在哪里定义的,你能分享一个示例吗? -
添加了线图的屏幕截图,因为它在没有图表控制器的情况下生成,并将图表的源数据作为谷歌图表表。如果您需要更多信息,请告诉我。
-
对不起,我想看看你在哪里加载
data- 它应该以相同的方式用于图表和仪表板。但错误听起来像是在传递常规数组而不是 DataTable 或 DataView...? -
这是一个数据表。增加了加载数据的方法。
标签: javascript google-visualization