2016-05-22 10 views
2

Ich versuche, mehrere CSV-Dateien in einem Diagramm zu laden, so dass ich Drilldowns verwenden kann. Ich kann keinen einzelnen csv mit mehreren Spalten verwenden, da jeder Datensatz unterschiedliche Mengen an Beobachtungen oder Zeilen enthält. Ich habe herausgefunden, wie man mehr als einen csv mit verschachtelten $ .get() - Funktionen lädt. Highcharts zeichnet jedoch nur den letzten referenzierten Datensatz auf. Ich habe versucht, den Code in drei verschiedenen Versionen zu schreiben, aber alle werden nur den letzten Datensatz darstellen, auf den verwiesen wird. Ich habe Highcharts-Dokumentation recherchiert, aber nichts gefunden, was meine Anforderungen erfüllt.So laden Sie mehr als eine CSV mit Highcharts-Datenmodul

Ich benutze Highcharts Datenmodul, um die CSV zu laden, weil es einfach ist. Ich bin jedoch offen für andere Lösungen, die eine Dateianalyse erfordern. Im Folgenden sind Beispiele der drei verschiedenen Versionen, die ich versuchte:

$.get('pref.csv', function(data1) { 
    $.get('create.csv', function(data2) { 
     $(chartID).highcharts({ 
      data: { 
       csv: data2, data1 
      }, 
      chart: { 
       type: 'bar' 
      } 
     }); 
    }); 
}); 

Oder

$.get('pref.csv', function(data1) { 
    $.get('create.csv', function(data2) { 
     $(chartID).highcharts({ 
      data: { 
       csv: data2, 
       csv: data1 
      }, 
      chart: { 
       type: 'bar' 
      } 
     }); 
    }); 
}); 

Oder

$.get('pref.csv', function(data1) { 
    $.get('create.csv', function(data2) { 
     $(chartID).highcharts({ 
      data: { 
       csv: data1 
      }, 
      data: { 
       csv: data2 
      }, 
      chart: { 
       type: 'bar' 
      } 
     }); 
    }); 
}); 

Vielen Dank im Voraus!

UPDATE Dies ist die Lösung zum Laden von zwei oder mehr CSV-Dateien für die Verwendung in einem Liniendiagramm mit Daten auf der xAxis.

data.csv 
Date,Mean 
2001-01-01,0 
2001-02-01,2.9 
2001-03-01,12.9 
2001-04-01,27.2 
2001-05-01,38.5 
2001-06-01,43.9 
2001-07-01,40.7 
2001-08-01,45.8 
2001-09-01,50.6 

data2.csv 
Date,Mean 
2001-01-01,2 
2001-02-01,1.6 
2001-03-01,8.2 
2001-04-01,13.6 
2001-05-01,15.6 
2001-06-01,17.1 
2001-07-01,15.8 
2001-08-01,17 
2001-09-01,13.3 

function parseCSV(csvFile) { 
    // empty array for storing the chart data 
    var data = []; 
    // Split the lines 
    var lines = csvFile.split('\n'); 
    // Iterate over the lines and add categories or series 
    $.each(lines, function(lineNo, line) { 
     if (lineNo != 0) { 
      var items = line.split(','); 
      // Insert date and player count into the series 
      data.push([Date.parse(items[0]), parseFloat(items[1])]); 
     } 
    }); 
    return data 
} 


$.get('data.csv', function(data1) { 
    $.get('data2.csv', function(data2) { 
     // parse data1 
     var series1 = parseCSV(data1) 
      // parse data2 
     var series2 = parseCSV(data2) 

     $('container').highcharts({ 
      chart: { 
       type: 'spline' 
      }, 
      series: [{ 
       data: series1 
      }, { 
       data: series2 
      }], 
     }); 

    }); 
}); 
+0

geben Sie bitte Beispiel "Aufrisse" – Fabricator

Antwort

0

Das Modul data.js erwartet eine einzelne Datei. Also müssen Sie zwei oder mehr Dateien mit ajax laden (durch $ .get wie Sie haben). Bereiten Sie dann das benutzerdefinierte Parsen vor und erstellen Sie eine Struktur des Reihen-Arrays.

Handbuch:

+1

Danke Sebastian. Nach viel Recherche und Versuch und Irrtum habe ich herausgefunden, wie man den CSV analysiert. –

Verwandte Themen