Задать вопрос

Как передать массив данных для построения графика на Google Charts?

Есть такой код для создания графика на основе google charts:
google.charts.load('current', {'packages':['corechart']}); 
  google.charts.setOnLoadCallback(drawChart);
  
  function drawChart() {
	var data = google.visualization.arrayToDataTable([
	  ['Date', 'Sales', 'Expenses', 'Expenses2'],
	  [new Date(2001,01,01),  1000,      400,      200],
	  [new Date(2002,01,01),  1170,      460,      100],
	  [new Date(2003,01,01),  660,       1120,      500],
	  [new Date(2004,01,01),  1030,      540,      120],
	  [new Date(2005,01,01),  1030,      540,      300],
	]);

	var options = {
		title: '',
		curveType: 'function',
		height: 500
	};
	var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));
	chart.draw(data, options);
  }


Подскажите, как я могу передавать данные для построения графика в функцию drawChart()?
дело в том, что у меня много разных графиков на одной странице, и я в цикле их вывожу.
хотелось бы делать вызов фукнции drawChart() передавая туда данные и id графика. Но как только передаю данные вот таким способом:

data = [
	  ['Date', 'Sales', 'Expenses', 'Expenses2'],
	  [new Date(2001,01,01),  1000,      400,      200],
	  [new Date(2002,01,01),  1170,      460,      100],
	  [new Date(2003,01,01),  660,       1120,      500],
	  [new Date(2004,01,01),  1030,      540,      120],
	  [new Date(2005,01,01),  1030,      540,      300],
	];

  google.charts.load('current', {'packages':['corechart']}); 
  google.charts.setOnLoadCallback(drawChart(data));
  
  function drawChart(data) {
	data = google.visualization.arrayToDataTable(data);
...


У меня вылетает ошибка:
Uncaught TypeError: Cannot read property 'arrayToDataTable' of undefined
  • Вопрос задан
  • 480 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@Gilfy
Вы скорее всего не загрузили необходимую библиотеку
google.load("visualization", "1", {packages:["corechart"]});

https://developers.google.com/chart/interactive/do...

Работающий пример:
jsfiddle.net/9ojr0gdz
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы