GoogleアナリティクスデータをチャートライブラリとGoogleスプレッドシートをデータソースとして使用してダッシュボードを作成しています。私は、それぞれのチャートのための関数を設定しています。それぞれのチャートには、独自のクエリーがあります。個別に、すべてが機能します。私はそれらを一緒に実行すると、私は断続的に2番目のグラフまたはデータエラーPie chart should have a first column of type string
を取得します。単一のGoogleシートの複数のグラフは表示されません
私はこの質問をヒントしているいくつかの回答を見たことがありますが、問題の解決に役立つものは何もありません。
ここで私が持っているjavascriptのは、両方のチャートを描画するために、これまでです:
// Load Charts and the corechart package.
google.charts.load('current', {'packages': ['corechart']});
// Draw the line chart for Reach when Charts is loaded.
google.charts.setOnLoadCallback(drawcpReach);
// Draw the pie chart for the UserType when Charts is loaded.
google.charts.setOnLoadCallback(drawcpUserType);
// Callback that draws the line chart for Reach.
function drawcpReach() {
// Create the data table for Reach.
var queryString = encodeURIComponent('SELECT A, B, C, D');
var sheetName = 'cp_data'
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1wH9Z3hA4iwRLC5IA6z4G3EKucSmW5lvGfiAkKLDDme0/gviz/tq?sheet=' + sheetName + '&headers=1&tq=' + queryString);
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var data = response.getDataTable();
// Set options for Reach.
var options = {
height: 450,
legend: {
position: 'none'
},
colors: ['#68b3c8', '#eb5e28', '#f3bb45']
};
// Instantiate and draw the line chart for Reach.
var chart = new google.visualization.LineChart(document.getElementById('cp-reach'));
chart.draw(data, options);
}
// Callback that draws the pie chart for UserType.
function drawcpUserType() {
// Create the data table for UserType.
var sheetName = 'cp_data'
var query = new google.visualization.Query('https://docs.google.com/spreadsheets/d/1wH9Z3hA4iwRLC5IA6z4G3EKucSmW5lvGfiAkKLDDme0/gviz/tq?sheet=' + sheetName + '&headers=1&range=E1:F3');
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
return;
}
var data = response.getDataTable();
// Set options for UserType.
var options = {
height: 450,
legend: {
position: 'none'
},
colors: ['#68b3c8', '#eb5e28']
};
// Instantiate and draw the chart for UserType.
var chart = new google.visualization.PieChart(document.getElementById('user-type'));
chart.draw(data, options);
}
私も私が働いているfiddle set upを持っています。
希望、サイドノートとして、私は通常、一度だけページあたりsetOnLoadCallback' '呼び出し、あなたはまた、この例のように、' google.charts.load'声明に含めることができます... – WhiteHat