Ich bin ein Journalist, der arbeitet, um die Grafschaften aufzuzeichnen, in denen die Anzahl der schwarzen Bauern zwischen 2002 und 2012 stieg oder zunahm. Ich verwende R (3.2.3) um zu verarbeiten und zu kartieren die Daten.R: Mapping von positiven und negativen Zahlen mit unterschiedlichen Farben
Ich konnte die gesamte Bandbreite der Gewinne und Verluste auf Kreisebene - die von minus 40 bis positiv 165 reichen - in einer einzigen Farbe abbilden, aber das macht es schwer, das Muster von Gewinnen und Verlusten zu sehen. Was ich machen möchte, ist, die Verluste alle Variationen einer einzigen Farbe (zB Blau) zu machen und Gewinne in Variationen einer zweiten Farbe (zB Rot) zu erzielen.
Der folgende Code generiert zwei separate (sehr vereinfachte) Karten für Bezirke, die positive und negative Änderungen sehen. Wer weiß, wie man diese Information in zwei Farben auf einer einzigen Karte festhält? Im Idealfall würden Grafschaften mit einem "Differenz" -Wert von 0 in Grau angezeigt. Danke für das Betrachten!
df <- data.frame(GEOID = c("45001", "22001", "51001", "21001", "45003"),
Difference = c(-10, -40, 150, 95, 20))
#Second part: built a shapefile and join.
counties <- readOGR(dsn="Shapefile", layer="cb_2015_us_county_5m")
#Join the data about farmers to the spatial data.
[email protected] <- left_join([email protected], df)
#NAs are not permitted in qtm method, so let's replace them with zeros.
counties$Difference[is.na(counties$Difference)] <- 0
#Here are the counties that lost black farmers.
loss.counties <- counties[counties$Difference < 0, ]
qtm(loss.counties, "Difference")
#Here are the counties that gained black farmers.
gain.counties <- counties[counties$Difference > 0, ]
qtm(gain.counties, "Difference")
Bitte Ihren Code der aktuellen Ausgabe zu minimieren, anstatt des Teilens ganze Projekte und zum Austausch von Daten statt externen Dateien, die niemand heruntergeladen. – mtoto
Danke. Lass mich versuchen, es zu beheben. –
nicht sicher, dass Sie dies leicht mit 'tmap' tun können, aber wenn Sie dies mit' ggplot' abbilden würden, könnten Sie dies leicht mit einer der hier aufgeführten scale_gradient2-Funktionen implementieren: http://docs.gplplot2.org/ 0.9.3/scale_gradient2.html – joemienko