2016-05-06 5 views
2

Ich habe Probleme mit D3. Ich habe ein Dataset, das ich in D3 einfüge und ein Balkendiagramm bearbeite. Das Problem ist, es gibt zu viele Bars! Ich möchte nur die Top 10 Werte anzeigen.Javascript D3 Zugriff auf Datensatz von CSV und Bearbeiten von Datensatz

Mein csv hat zwei Werte, der Schlüssel (Spaltenüberschrift) ist "Name" und der Wert ist "NumberOfTickets". Ich möchte nur 10 Namen anzeigen, die die meisten Tickets haben. Ich nehme an, dass ich meinen Datensatz sortieren und spleißen muss, aber ich habe alles versucht und kann es nicht zum Laufen bringen. Es scheint, dass die meisten Tutorials auf einfache Arrays ausgerichtet sind und nicht auf ein Dataset, das aus einer CSV mit Schlüsselwertpaaren stammt. Jede Hilfe wäre willkommen. Hier ist mein Dataset-Teil des D3-Codes. Ich nehme an, das ist, wo ich den Datensatz bearbeiten müssen:

var report = data.forEach(function(d){      
       d.Name= d.Name; 
       d.NumberOfTickets= +d.NumberOfTickets;       
      }); 
+0

[Sortieren] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort) und dann [filter] (https: //developer.mozilla. org/de-DE/docs/Web/JavaScript/Referenz/Global_Objects/Array/Filter) –

Antwort

2

Try this:

var report = data.sort(function(a, b) { 
       return d3.descending(+a.NumberOfTickets, +b.NumberOfTickets); 
      }).slice(0, 10); 

Wenn Sie die Namen möchten, die weniger Tickets bekommen, nur für „aufsteigend“ ändern. Wenn Sie Ihre Scheibe ändern möchten, denken Sie daran, dass die Startnummer inklusive ist, die Endnummer jedoch nicht.

Verwandte Themen