Как использовать Google Chart с данными из csv
У меня есть файл csv, который выглядит так:
week,value1,value2
1,2,3
2,7,9
Я хотел бы построить его штабелированный график с помощью Google chart (неделя-мои X (горизонтальные) значения и values1 и values2-два набора y). К сожалению, я не нашел простого способа сделать это. Это, вероятно, связано с тем, что я полный нуб в js.
есть ли простой способ сделать это?
2 ответов
на библиотека jQuery-csv предоставляет возможность перевести строку csv в массив, который будет использоваться google.visualization.arrayToDataTable()
(их пример здесь). Чтобы сделать эту работу, добавьте jquery.csv.js на ваш сервер (в приведенном ниже примере я предполагаю, что он находится в той же папке, что и ваш HTML) и ссылка на него в вашем <head>
. Ниже приведен простой скрипт, который вы можете добавить в свой <head>
начать. Я предполагаю диаграмму разброса, но этот процесс работает для любой из диаграмм здесь. Вам также понадобится <div>
С id="chart"
для этого, чтобы работать.
// load the visualization library from Google and set a listener
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
// this has to be a global function
function drawChart() {
// grab the CSV
$.get("example.csv", function(csvString) {
// transform the CSV string into a 2-dimensional array
var arrayData = $.csv.toArrays(csvString, {onParseValue: $.csv.hooks.castToScalar});
// this new DataTable object holds all the data
var data = new google.visualization.arrayToDataTable(arrayData);
// this view can select a subset of the data at a time
var view = new google.visualization.DataView(data);
view.setColumns([0,1]);
// set chart options
var options = {
title: "A Chart from a CSV!",
hAxis: {title: data.getColumnLabel(0), minValue: data.getColumnRange(0).min, maxValue: data.getColumnRange(0).max},
vAxis: {title: data.getColumnLabel(1), minValue: data.getColumnRange(1).min, maxValue: data.getColumnRange(1).max},
legend: 'none'
};
// create the chart object and draw it
var chart = new google.visualization.ScatterChart(document.getElementById('chart'));
chart.draw(view, options);
});
}
на каком языке сценариев на стороне сервера вы работаете (php, asp)?
одним из вариантов может быть импорт данных из электронной таблицы, сохраненной в Google Drive,посмотреть здесь для примера сохранения и извлечения данных из документов Google на основе PHP. Это позволит вам обновить электронную таблицу, и диаграмма автоматически построит новые данные.