2016-06-14 4 views
0

Ich habe CSV-Daten, wobei die Werte entweder 1, 0 oder leer sein können. Ich möchte dies mit d3-geomaps arbeiten zu arbeiten.Verwenden von d3.geomap zum Anzeigen von 1/0 Daten

Hier ist ein Snapshot of my CSV.

Wenn ich es aus der Spalte "1802" lesen, da es zufällig eine Mischung aus 1 und 0 hat, funktioniert die Karte wie erwartet. Grüne = 0, Rote = 1.

Wenn ich jedoch aus Spalte "1800 oder 1801", wie sie alle 0 sind, lesen, sind alle Länder ausgegraut. Aber ich will, dass es Greens für alle 0's zeigt.

Mein Code:

var customColors = ['green','red','red']; 
     var map = d3.geomap.choropleth() 
      .geofile('../d3-geomap/topojson/world/countries.json') 
      .colors(customColors) 
      .column(y) 
      .format(format) 
      .legend(false) 
      .unitId('Country'); 

     d3.csv('CSVs/data.csv', function(error, data) { 
      d3.select('.map') 
       .datum(data) 
       .call(map.draw, map); 

Meine Frage ist, Ist es möglich, 1/0 Daten zu handhaben verwenden d3.geomap? Wenn ja, wie kann ich das schaffen?

HINWEIS:

Wenn Sie Probleme mit meiner CSV-Snapshot mit bist, hier ist das, was meine CSV wie im Klartext sieht:

Country,1800,1801,1802 
AGO,0,0,0 
ARG,0,0,1 
AUS,0,0,0 
AUT,,0,0 
+0

Hallo, bitte posten Text von Daten, keine Bilder. – rrauenza

+0

@rrauenza, danke für deine Antwort Ich habe den Text der Daten am Ende der Beschreibung veröffentlicht. –

Antwort

1

Sie die Datendomäne festlegen können, wenn Sie ein Kartenobjekt erstellen, wie in this new example map gezeigt.

var map = d3.geomap.choropleth() 
    .colors(['green','red']) 
    .domain([0, 1]) 
    .... 

Leider werden leere Werte in der CSV dann zu grün sein, wenn man sie nicht zu NaN vorher konvertieren. Dies deutet möglicherweise auf einen Fehler in d3.geomap hin, den ich untersuchen muss.

Ich fixierte Färbung und Tooltips für leere und NaN-Werte in Release 1.0.2, die ich gerade veröffentlicht habe.

+0

Danke @ramiro! Ich kann die Leerzeichen sicher in "NaN" umwandeln. Dadurch wird der Hover jedoch auch als NaN angezeigt. Im selben CSV-Beispiel zeigt der Mauszeiger über Österreich "1800: NaN". Irgendeine Weise, die repariert werden kann? –

+0

Idealerweise zeigt es nichts, nur den Ländernamen. –

+0

Das aktuelle Verhalten der leeren/Nan-Werte ist nicht ideal, ich werde es untersuchen. Ein etwas hässlicher Workaround wäre, alle 'title' Elemente auszuwählen und diejenigen zu entfernen, in denen der Text NaN-Werte enthält. Dies müsste in der Funktion [postUpdate] (https://d3-geomap.github.io/docs/map-properties/) erfolgen, d. e. wenn die Karte bereits gezeichnet ist und diese Elemente vorhanden sind. – ramiro