Как сделать пузырьковую диаграмму из файла CSV?

Итак, у меня есть следующий файл, data.csv, Который выглядит так:

TestID,Cronbach,Percent Correct,Population
12416,0.866,0.17,26
12421,0.945,0.21,8
12385,0.777,0.40,258
12412,0.85,0.44,34
12407,0.831,0.45,48

И я хочу, чтобы это выглядело так:

[
["Test ID", "Cronbach", "Percent Correct", "Population"],
["12416", 0.866, 0.17, 26],
["12421", 0.945, 0.21, 8],
["12385", 0.777, 0.40, 258],
["12412", 0.85, 0.44, 34],
["12407", 0.831, 0.45, 48]
]

Есть ли способ, которым я могу сделать код преобразования в php, чтобы преобразовать мой CSV-файл, чтобы он выглядел как вышеупомянутый формат. Мне это нужно, потому что я хочу поместить код в Google Bubble Chart.

Q: Как я могу сделать код, который может преобразовать его в приемлемый формат, подходящий для пузырьковой диаграммы Googles?

2

Решение

В следующем примере показано, как анализировать содержимое файла CSV:

function prepareChartData(data) {
var items = [];
var lines = data.split(/\r\n|\n/);

lines.forEach(function(line,i){
if(line.length > 0){
var item =  line.split(',');
if(i > 0){
item[1] = parseFloat(item[1]);
item[2] = parseFloat(item[2]);
item[3] = parseInt(item[3]);
}
items.push(item);
}
});
return items;
}

Результат

[
[
"TestID",
"Cronbach",
"Percent Correct",
"Population"],
[
"12416",
0.866,
0.17,
26
],
[
"12421",
0.945,
0.21,
8
],
[
"12385",
0.777,
0.4,
258
],
[
"12412",
0.85,
0.44,
34
],
[
"12407",
0.831,
0.45,
48
]
]

Полный пример

google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(function(){
readChartData()
.then(prepareChartData)
.done(drawChart);
});

function drawChart(items) {

var data = google.visualization.arrayToDataTable(items);
var options = {
title: 'Chart'
};
var chart = new google.visualization.BubbleChart(document.getElementById('chart_div'));
chart.draw(data, options);
}


function readChartData(complete)
{
return $.ajax({
type: "GET",
url: "data.csv",
dataType: "text"});
}


function prepareChartData(data) {
var items = [];
var lines = data.split(/\r\n|\n/);

lines.forEach(function(line,i){
if(line.length > 0){
var item =  line.split(',');
if(i > 0){
item[1] = parseFloat(item[1]);
item[2] = parseFloat(item[2]);
item[3] = parseInt(item[3]);
}
items.push(item);
}
});
return items;
}
2

Другие решения

Итак, у меня есть следующий файл, data.csv, Который выглядит так:

TestID,Cronbach,Percent Correct,Population
12416,0.866,0.17,26
12421,0.945,0.21,8
12385,0.777,0.40,258
12412,0.85,0.44,34
12407,0.831,0.45,48

И я хочу, чтобы это выглядело так:

[
["Test ID", "Cronbach", "Percent Correct", "Population"],
["12416", 0.866, 0.17, 26],
["12421", 0.945, 0.21, 8],
["12385", 0.777, 0.40, 258],
["12412", 0.85, 0.44, 34],
["12407", 0.831, 0.45, 48]
]

Есть ли способ, которым я могу сделать код преобразования в php, чтобы преобразовать мой CSV-файл, чтобы он выглядел как вышеупомянутый формат. Мне это нужно, потому что я хочу поместить код в Google Bubble Chart.

Q: Как я могу сделать код, который может преобразовать его в приемлемый формат, подходящий для пузырьковой диаграммы Googles?

2

В следующем примере показано, как анализировать содержимое файла CSV:

function prepareChartData(data) {
var items = [];
var lines = data.split(/\r\n|\n/);

lines.forEach(function(line,i){
if(line.length > 0){
var item =  line.split(',');
if(i > 0){
item[1] = parseFloat(item[1]);
item[2] = parseFloat(item[2]);
item[3] = parseInt(item[3]);
}
items.push(item);
}
});
return items;
}

Результат

[
[
"TestID",
"Cronbach",
"Percent Correct",
"Population"],
[
"12416",
0.866,
0.17,
26
],
[
"12421",
0.945,
0.21,
8
],
[
"12385",
0.777,
0.4,
258
],
[
"12412",
0.85,
0.44,
34
],
[
"12407",
0.831,
0.45,
48
]
]

Полный пример

google.load("visualization", "1", { packages: ["corechart"] });
google.setOnLoadCallback(function(){
readChartData()
.then(prepareChartData)
.done(drawChart);
});

function drawChart(items) {

var data = google.visualization.arrayToDataTable(items);
var options = {
title: 'Chart'
};
var chart = new google.visualization.BubbleChart(document.getElementById('chart_div'));
chart.draw(data, options);
}


function readChartData(complete)
{
return $.ajax({
type: "GET",
url: "data.csv",
dataType: "text"});
}


function prepareChartData(data) {
var items = [];
var lines = data.split(/\r\n|\n/);

lines.forEach(function(line,i){
if(line.length > 0){
var item =  line.split(',');
if(i > 0){
item[1] = parseFloat(item[1]);
item[2] = parseFloat(item[2]);
item[3] = parseInt(item[3]);
}
items.push(item);
}
});
return items;
}
0

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
2