map geom_sf : entourer plusieurs parcelles

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Tomas leon
Messages : 51
Enregistré le : 09 Jan 2018, 16:12

map geom_sf : entourer plusieurs parcelles

Messagepar Tomas leon » 07 Juil 2019, 11:31

Bonjour à tous,

j'ai une question technique pour vous s'il vous plait à propos d'une manip sur un fond de carte.
Dans ce cas je ne sais pas comment vous présenter un exemple reproductible...

En gros j'ai un shp file avec dans sa table attributaire les codes INSEE des communes, le nom des villes, les longitudes et les latitudes, ainsi que les groupes dans lesquelles font parties mes communes. Donc j'ai quelques centaines de communes, et une vingtaine de groupes.

la table attributaire de ma shp file :

Code : Tout sélectionner

 INSEE  Name   Long Lat    Groupes
   <chr> <chr>     <dbl>    <dbl> <dbl>
 1 34001 ABEI…   724751. 6262333.     9
 2 34002 ADIS…   734961. 6270688.    10
 3 34003 AGDE    739245. 6245728.     7
 4 34004 AGEL    688135. 6249905.     4
 5 34005 AGON…   758530. 6311345.    20
 6 34006 AIGNE   683215. 6247000.     4
 7 34007 AIGU…   685638. 6249976.     4
 8 34008 LES …   705573. 6274482.     6
 9 34009 ALIG…   727555. 6263258.     9
10 34010 ANIA…   747789. 6287511.    18



Et mon code :

Code : Tout sélectionner

library(dplyr)
library(ggplot2)
library(sf)

    read_sf("cities.shp")  %>%
      ggplot() +  geom_sf() + theme_bw()



Lorsque je fais ça, j'ai bien mon fond de carte avec le découpage des communes, et comme je n'ai fait apparaitre aucune variable dedans, le fond de carte est gris.

Ma question : est ce qu'il est possible d'avoir ce fond de carte par commune avec en plus, en trait plus épais par exemple, le contour des groupes. J'aimerais avoir 1 couleur pour 1 groupe (dans l'ordre que propose ggplot par défaut). J'aimerais également savoir s'il est possible de colorier les différents groupes, mais avec de la transparence, pour que l'on puisse quand même voir le découpage des communes du dessous. J'ai besoin d'un raccord de couleur puisque je vais le comparer a pleins d'autres figures.

ps : lorsque je voulais réaliser un fond de carte avec uniquement les groupes, j'avais un second shp avec uniquement les informations sur le groupes.
pss : les communes d'un groupe se touchent obligatoirement entre elles, donc les groupes représentent les bords les plus externe de ces rassemblements de communes.

Merci pour votre aide !

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: map geom_sf : entourer plusieurs parcelles

Messagepar Mickael Canouil » 08 Juil 2019, 08:16

Bonjour,

je n'ai jamais utilisé de cartes avec ggplot2 (et base), mais comme c'est du ggplot2, un aes(colour = Groupes) ou aes(fill = Groupes) devrait faire le travail comme dans toutes les fonctions geom_

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

Tomas leon
Messages : 51
Enregistré le : 09 Jan 2018, 16:12

Re: map geom_sf : entourer plusieurs parcelles

Messagepar Tomas leon » 08 Juil 2019, 09:51

Bonjour,

Bah oui du coup c'est ça !

Code : Tout sélectionner

library("ggspatial")

(test <- read_sf("Carte.shp")  %>%  mutate(parcelle = as.factor(parcelle)) %>%
    mutate(parcelle = factor(parcelle, levels = c(paste0(1:23)))) %>%
  ggplot() +  geom_sf(aes(fill = parcelle)) + theme_bw() +  annotation_scale(location = "bl", width_hint = 0.3) +
    annotation_north_arrow(location = "bl", which_north = "true",
        pad_x = unit(0.1, "in"), pad_y = unit(0.2, "in"),
        style = north_arrow_fancy_orienteering)
  )
   


Du coup en bonus le package ggspatial pour le code des annotations

Est ce que quelqu'un saurait rendre plus épais les frontières de mes parcelles s'il vous plait ?

par exemple rajouter une ligne comme ça ?

Code : Tout sélectionner

geom_sf(fill = "transparent", color = "gray20", size = 0.5, data = . %>% group_by(parcelle) %>% summarise(geometry = st_union(.)))


Mais cela ne fonctionne pas, cela entour l'extérieur de toutes mes parcelles....

D'ailleurs comme j'en ai 23, les couleurs continues rendent peu lisible la map, si jamais vous avez des suggestions, je suis preneur.

Merci !

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: map geom_sf : entourer plusieurs parcelles

Messagepar Mickael Canouil » 09 Juil 2019, 08:56

Vous n'aidez pas vraiment les membres de ce forum à vous aider.
Soit vous avez vraiment beaucoup de chance et quelqu'un a déjà essayé exactement la même chose et connait donc la réponse exacte.
Soit, la réponse repose sur l'expérience et la connaissance de R dans son ensemble, dans ce cas, les membres n'ont pas vraiment envie de chercher à reproduire un jeu de donnée fonctionnel et faire des essais.

En l'occurrence, j'utilise quotidiennement ggplot2 (et les packages associés), mais pas pour des cartes, ainsi si je dois passer 20 minutes pour avoir un exemple et faire deux essais de 30 secondes, c'est un abandon dans 90 % des cas.

En conclusion, fournir un exemple reproductible (c.-à-d., copier-coller le code suffit à avoir un résultat) est votre meilleure chance d'avoir une réponse fonctionnelle.

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Bertrand Vassor et 1 invité