Ich bin neu in StackOverflow und ich habe gerade angefangen, D3 zu verwenden. Ich muss die Werte auf einer Karte zeigen. Ich sah this question das ist sehr ähnlich zu dem, was ich tun sollte.Einfärben einer Karte mit D3.js
Was ich möchte ist, die Länder basierend auf den Werten in der Spalte Date
zu einer CSV und basierend auf ausgewählten Jahr für Benutzer (Radio-Button) zu färben. Wie kann ich das tun?
Ich erstellte eine graue Farbskala und habe sie in ein Array aufgenommen, dann erstellte ich eine Methode chooseColor(value)
, die die richtige Farbe basierend auf dem Wert des Landes in diesem Jahr zurückgibt. Ich denke, es ist nicht die effizienteste Methode, dies zu tun ...
Auch in meiner CSV gibt es nicht alle Länder in der Europäischen Union. Zum Beispiel habe ich keine Daten über Russland, also habe ich einige Länder "ausgeschaltet", indem ich if
in das Ereignis auf mouseover
setzte. Aber ich würde auch einen Teil von Russland in der Karte schneiden, um die bekannten Länder zu vergrößern. Wie kann ich auch das Ding machen?
ich bei diesen Beispielen sah: Choropleth und Threshold Choropleth von Mike Bostock auf bl.ocks.org aber ich verstehe nicht, wie die Länder einzufärben ... (wollte ich Links setzen, aber ich kann 't posten mehr als 2 Links wegen meines schlechten Rufs)
Ich entschuldige mich für mein schlechtes Englisch. Vielen Dank an alle,
Pier
EDIT
ich zugeben, dass ich nicht ein paar Dinge in Ihrem Code verstehen.
- Warum brauche ich Ereignisse
on mouseover
undmouseout
? Und was sind undrhover
? Ich dachte, sie wären Ereignisse im Zusammenhang mit this question. Aber in meinem Fall brauche ich es nicht, oder? - Verwenden
array_values
oderd
ist das gleiche, oder? Ändert sich nicht, wenn ichd
oderarray_values
verwende, oder? Es ist eine dumme Frage, aber es hat mich verwirrt. Ich modifizierte die
makemap
Methode auf diese Weise. Ich verstehe richtig, wie man deinen Code benutzt?Funktion makemap (Fehler, Europa, Dessease) { desss = dessease.slice(); counties = topojson.feature (europe, europe.objects.collection);
vector = svg.selectAll("path") .data(counties.features) .enter() .append("path") .attr("class", "county") .attr("id", function(d) { return "coun" + d.properties.indx; }) .attr("d", path) .style("fill", function(array_values) { return color(array_values[d.country]); });
In diesem Fall gibt es einen Fehler in Bezug auf d
, natürlich. Sorry, ich weiß nicht, wo ich falsch liege ...
Bitte löschen Sie Ihre Funktion : wähle eine Farbe. Oder refactor es – Klaujesi