2015-06-07 2 views
2

Итак, у меня есть следующий файл, data.csv. Который выглядит следующим образом:Как создать диаграмму пузырьков из файла 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: Как я могу сделать код, который может преобразовать это в приемлемый формат, чтобы соответствовать диаграмме пузырьков Google?

ответ

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; 
} 
+1

Спасибо так много! Я высоко ценю. – Luke

+0

Это ответили два дня назад, и сообщение было закрыто, а не редактировалось. http://stackoverflow.com/questions/30688427/how-to-make-a-google-charts-bubble-chart-from-csv-file/30688627#30688627. Даже полнофункциональная демонстрация была предоставлена. http://jsbin.com/wavacidupu/2/edit?html,js,output –

Смежные вопросы