J'ai une question concernant le tracé d'une carte de choroplèthes. Que recommande-t-on pour tracer une carte avec des coupures personnalisées? Et rendez-le un peu attrayant.
Dans mon script, j'ai utilisé la commande plot and spplot pour visualiser certaines données mais je ne suis pas entièrement satisfait du résultat. C'est facile de voir pourquoi. En utilisant spplot, j'obtiens une rampe de couleurs qui répète les couleurs pour différentes valeurs, ce qui est un peu bizarre. En utilisant l' intrigue avec les coupures personnalisées, je n'ai pas pu faire de meilleurs intervalles pour les valeurs, telles que, par exemple, les valeurs nulles sont blanches sur la carte. Les proportions asymétriques entre la légende et la carte sont, je pense, probablement le résultat de Rstudio.
Je me suis donc demandé si quelqu'un avait de meilleures suggestions pour tracer des cartes choroplèthes dans R en utilisant des sauts personnalisés?
EDIT 20-02-2013
Comme suggéré, j'ai utilisé ggplot2 pour créer une carte choroplèth. J'ai utilisé le code ci-dessous. J'ai rencontré deux problèmes. La première est qu'après fortification des données, toutes les données du fichier de formes ne sont pas transférées dans la trame de données. Je dois donc renommer la variable "id" afin de pouvoir fusionner les données. Problème mineur.
Un problème plus important est que, malgré le fait que les données dans le cadre de données sont correctes, le ggplot affiche une carte où les données sont incorrectes. La valeur de couleur selon la légende ne correspond pas à la valeur de la variable dans les données. Suis-je en train d'oublier quelque chose ici?
# 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()
Lien vers les données de réplication
Mise à jour 13-11-2015: lien fixe vers le fichier de forme . Voir la réponse ci-dessous pour une solution sur la façon de tracer le choroplèth.
la source
ggplot2
des cartes choroplèthes, qui, à mon avis, se révèlent mieux par défaut.Réponses:
Je ne vois pas de problème avec le code ci-dessus, sauf que vous avez 6 niveaux clairs
onset
, donc je les traiterais comme des facteurs plutôt que comme une variable continue. Notez l'factor
appel dans le code ci-dessous.Ce code donne le résultat suivant:
Si vous voulez des couleurs personnalisées, vous pouvez essayer ceci:
Ce qui produit ceci:
la source
3
pour laonset
colonne et trace un3
dans le graphique. Cela semble fonctionner. Vraisemblablement il me manque quelque chose?Le package classInt a un certain nombre de fonctions pour calculer les intervalles pour les données numériques - installez-le et lisez les documents.
la source
Pour les archives, la solution que j'ai utilisée:
la source