L'étiquetage centre de la carte de polygones dans R ggplot
Je suis en train de l'étiquette de mes polygones en utilisant ggplot dans R. j'ai trouvé un sujet ici sur stackoverflow qui, je pense, est très proche de ce que je veux, sauf avec des points.
Étiquette points dans geom_point
J'ai trouvé des méthodes en ligne. Maintenant j'ai d'abord besoin de trouver l'emplacement central de chaque forme et puis, je dois mettre ces endroits avec le nom de l'ensemble. Puis le relier à la fonction d'étiquetage dans geom_text()
ggplot centrée noms sur une carte
Depuis, j'ai essayé pendant un long moment maintenant, j'ai décidé de poser la question et espère que quelqu'un ici peut me donner la dernière main à ce que je veux. Mon tracé de la fonction:
region_of_interest.fort <- fortify(region_of_interest, region = "score")
region_of_interest.fort$id <- as.numeric(region_of_interest.fort$id)
region_of_interest.fort$id <- region_of_interest.fort$id
region_of_interest.fort1 <- fortify(region_of_interest, region = "GM_NAAM")
region_of_interest.fort1$id <- as.character(region_of_interest.fort1$id)
region_of_interest.fort1$id <- region_of_interest.fort1$id
idList <- unique(region_of_interest.fort1$id)
centroids.df <- as.data.frame(coordinates(region_of_interest))
names(centroids.df) <- c("Longitude", "Latitude")
randomMap.df <- data.frame(id = idList, shading = runif(length(idList)), centroids.df)
ggplot(data = region_of_interest.fort, aes(x = long, y = lat, fill = id, group = group)) +
geom_polygon() +
geom_text(centroids.df, aes(label = id, x = Longitude, y = Latitude)) +
scale_fill_gradient(high = "green", low = "red", guide = "colorbar") +
coord_equal() +
theme() +
ggtitle("Title")
Il me donne l'erreur: ggplot2 ne pas savoir comment traiter avec les données de la classe uneval
Mes données
region_of_interest$GM_NAAM
[1] Groningen Haren Ooststellingwerf Assen Aa en Hunze Borger- Odoorn
[7] Noordenveld Westerveld Tynaarlo Midden-Drenthe
415 Levels: 's-Gravenhage 's-Hertogenbosch Aa en Hunze Aalburg Aalsmeer Aalten ... Zwolle
region_of_interest$score
[1] 10 -2 -1 2 -1 -4 -4 -5 0 0
J'apprécie le commentaire. La page que vous liez à l'air très difficile pour moi en tant que débutant dans R. Mais je pense que j'ai assez clairement la question et il y a quelqu'un qui a déjà fait cela. La fonction n'terrain quand j'exclure les étiquettes. Vous pouvez juste imaginer des formes vides, les formes ou les données n'a pas d'importance. Maintenant, je veux placer une étiquette.
Cet exemple est-ce que vous voulez.
OriginalL'auteur Zuenie | 2014-02-26
Vous devez vous connecter pour publier un commentaire.
Essayer quelque chose comme cela?
Obtenir un bloc de données de centroïdes de votre polygones à partir de la
carte originale de l'objet.
Dans le bloc de données, vous tracez, assurez-vous il ya des colonnes pour les
l'IDENTIFIANT de l'étiquette et de la longitude et de la latitude de ces
centroïdes.
Utilisation geom_text dans ggplot à ajouter les étiquettes.
Basé sur cet exemple J'ai lu une carte du monde, l'extraction de la ISO3 Id à utiliser comme mon polygone étiquettes, et de faire un bloc de données de pays de l'ID, de la population et de la longitude et de la latitude de centroïdes. J'ai ensuite tracé de la population les données sur une carte du monde et d'ajouter des étiquettes à la centroïdes.
Mineur note technique: en fait
coordonnées
dans leps
le paquet n'est pas tout à fait trouver le centre de gravité, mais il faut généralement donner un bon emplacement pour une étiquette. UtilisationgCentroid
dans lergeos
paquet si vous souhaitez étiquette au vrai centre de gravité dans les situations plus complexes comme les non-contigus formes.J'ai adapté la question d'origine après l'exécution de votre code. Je pense que j'ai le problème que vous mentionnez ici dans le commentaire.
La solution est de ne pas lire les Identifiants hors de l'enceinte fortifiée de DF et les centroïdes hors de la carte originale. Au lieu d'utiliser le @de données comme dans le code ci-dessus. Espérons que cette aide.
Merci beaucoup pour la permanence de m'aider! Je l'ai eu et ses belles!
Si vous êtes à la production d'un chloropleth dans ggplot vous pourriez également être intéressé par stackoverflow.com/questions/6736378/...
OriginalL'auteur Silverfish
La accepté de répondre ici peut fonctionner, mais la réelle question posée indique spécifiquement qu'il y a une erreur "ggplot2 ne pas savoir comment traiter avec les données de la classe uneval."
La raison que c'est de vous donner l'erreur est parce que l'inclusion de centroïdes.df doit être un nom de variable (par exemple, accompagné par "data=")
Actuellement:
Devrait être (note: le "data=centroïdes.df"):
Ce problème a été résolu ici: Comment traiter avec des "données de classe uneval" erreur de ggplot2?
OriginalL'auteur Jarrod Olson