Mam pytanie dotyczące nakreślenia mapy choropleth. Co jest zalecane w odniesieniu do kreślenia mapy z niestandardowymi przerwami? I spraw, aby wyglądał nieco atrakcyjnie.
W moim skrypcie użyłem polecenia plot i spplot do wizualizacji niektórych danych, ale nie jestem do końca zadowolony z wyniku. Łatwo zrozumieć, dlaczego. Za pomocą splotu otrzymuję rampę kolorów, która powtarza kolory dla różnych wartości, co jest nieco dziwne. Używając wykresu z niestandardowymi podziałami , nie byłem w stanie uzyskać lepszych przedziałów dla wartości, tak że na przykład wartości zerowe są białe na mapie. Przekrzywione proporcje między legendą a mapą są, jak sądzę, prawdopodobnie wynikiem Rstudio.
Zastanawiałem się więc, czy ktoś ma lepsze sugestie dotyczące tworzenia map choropleth w R przy użyciu niestandardowych przerw?
EDYCJA 20-02-2013
Zgodnie z sugestią użyłem ggplot2 do stworzenia mapy choropleth. Użyłem kodu poniżej. Napotkałem dwa problemy. Jednym z nich jest to, że po wzmocnieniu danych nie wszystkie dane z pliku kształtu są przesyłane do ramki danych. Więc muszę zmienić nazwę zmiennej „id”, aby móc scalić dane. Mniejszy problem.
Większy problem polega na tym, że pomimo faktu, że dane w ramce danych są poprawne, ggplot pokazuje mapę, w której dane są niepoprawne. Wartość koloru zgodnie z legendą nie odpowiada wartości zmiennej w danych. Czy coś tutaj przeoczyłem?
# Plotting polygon shapefiles (try-out)
# Load the packages
require(rgdal)
require(maptools)
require(ggplot2)
gpclibPermit() # required for the fortify method
# Load the shapefile
africa=readOGR("/home/GIS",layer="africaII")
names(africa)
# Load the data on conflict
conflict<-read.csv("africa_conflict.csv", header=TRUE)
names(conflict)
# Merge the data together
africadat<-merge(africa, conflict, by="ISO3")
# Changing the data in the shapefile
africa@data <- africadat
# Fortify so that ggplot can plot
africa.points = fortify(africa,region="ISO3")
# Change "id" to "ISO3"such that the datasets can be merged again
names(africa.points)[names(africa.points)=="id"]<-"ISO3"
africa.df=merge(africa.points,africadat,by="ISO3")
# Plot the data
ggplot(africa.df) +
aes(long,lat,group=group) +
geom_polygon(aes(fill =onset))+
geom_path(color="white") +
coord_equal()
Aktualizacja 13-11-2015: Naprawiono link do pliku kształtu . Zobacz odpowiedź poniżej, aby dowiedzieć się, jak zaplanować choropleth.
ggplot2
map choropleth, które moim zdaniem domyślnie okazują się lepiej wyglądające.