2014-02-02 2 views
0

Я пытаюсь создать калибровочную диаграмму из данных csv. Следующая функция работает хорошо, но она учитывает один символ как входной сигнал string. Я считаю, что эта часть решить, сколько слов для чтения из CSVЧтение данных 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}, 

Он читает это не хватает только данных:

Category,' ' 
E,24 
m,34 
m,0 
y,10 
y,6 
r,6 

Мои фактические данные, которые я хочу прочитать является:

Engine,24 
min,34 
max,0 
yellowFrom,10 
yellowTo,6 
redFrom,6 
redTo,0 

Может кто-нибудь скажет мне, где мне нужно улучшение?

function drawChart() { 
     $.get("Chart2-data.csv", function(csvString) { 
      // transform the CSV string into a 2-dimensional array 
      var arrayData = $.csv.toArrays(csvString, {onParseValue: $.csv.hooks.castToScalar}); 
      var data = new google.visualization.arrayToDataTable(arrayData); 
      var view = new google.visualization.DataView(data); 
      view.setColumns([0,1]); 
     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' 
     }; 
     var chart = new google.visualization.Gauge(document.getElementById('gauge')); 
     chart.draw(data, options); 
}); 
     } 

Весь код:

<html> 
    <head> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script> 
<script src="http://jquery-csv.googlecode.com/files/jquery.csv-0.71.js"></script> 
    <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["gauge"]}); 
     google.setOnLoadCallback(drawChart); 

    function drawChart() { 
     // grab the CSV 
     $.get("Chart2-data.csv", function(csvString) { 
      // transform the CSV string into a 2-dimensional array 
      var arrayData = $.csv.toArrays(csvString, {onParseValue: $.csv.hooks.castToScalar}); 
     alert(arrayData); 
      // 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' 
     }; 

     var chart = new google.visualization.Gauge(document.getElementById('gauge')); 
     chart.draw(data, options); 
}); 
     } 
    </script> 
    </head> 
    <body> 
    <div id="gauge" style="width: 900px; height: 500px;"></div> 
    </body> 
</html> 
+0

Я столкнулся с такой проблемой при обработке данных csv. Я думаю, это связано с проблемами кодирования. Вы должны использовать ту же самую кодировку в CSV и HTML/PHP –

+0

@ PatarticsMilán: спасибо, можете ли вы продумать, какую кодировку вы здесь говорите? –

+0

Кодирование файлов, кодирование HTML и кодирование потока ввода-вывода. [Это] (http://stackoverflow.com/a/17394539/2190252), возможно, связано с вашей проблемой, за исключением того, что это python. –

ответ

1

Вещи где = ок, Просто удалите эту часть:

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' 

И добавить уровни в данных CSV

label,value 
Engine,24 
min,34 
max,0 
yellowFrom,10 
yellowTo,6 
redFrom,6 

Это будет работа хорошая

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