Bonjour je souhaite représenter des indicateurs sur 2 régions d'un pays qui en compte 13,
j'ai utilisé le code suivant :
BfForm <- raster::getData(name="GADM", country="BF", level=1)
raster::plot(BfForm, col="lightgrey", main="Fond de carte du BF")
idx<-match(BfForm$NAME_1, Carto$region)
cor <- Carto[idx, "region"]
BfForm$region <- cor
couleurs <- colorRampPalette(c('white','red'))
raster::spplot(BfForm, "region", col.regions=couleurs(30), main=list(label="effectif de la pop enquêtée", cex=.8), at=seq(5000,6500,200))
Mais j'ai le message d'avertissement suivant:
Warning messages:
1: In extend.limits(range(as.numeric(z), finite = TRUE)) :
NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf
4: In (function (x, y, z, subscripts, at = pretty(z), shrink, labels = NULL, :
NAs introduced by coercion
Quelqu'un pourrai t'il m'apporter un coup de main. cordialement
A handy way to supply some sample data is the dput() function. In the case of a large dataset something like dput(head(mydata, 100)) should supply the data we need. Just do dput(mydata) where mydata is your data. Copy the output and paste it here between
```
Merci, mais nous avons besoin de plus de votre code. Par exemple, qu'est que c'est les "libraries" que vous utilisez? Est-ce que vous pouvez nous donner tout le code?
library(haven)
library(tidyverse)
library(labelled)
library(questionr)
library(raster)
#Importation des coordonnées géographiques
BfForm <- raster::getData(name="GADM", country="BF", level=1)
raster::plot(BfForm, col="lightgrey", main="Fond de carte du BF")
#Jointure entre les deux bases de données
idx<-match(BfForm$NAME_1, Carto$region)
cor <- Carto[idx, "region"]
BfForm$region <- cor
couleurs <- colorRampPalette(c('white','red'))
#Rprésentation graphique
raster::spplot(BfForm, "region", col.regions=couleurs(30), main=list(label="effectif de la pop enquêtée", cex=.8), at=seq(5000,6500,200))
Carto est la structure de données que je vous ai partagé:
view(Carto)
ville lat long Effectif pays province region
<fct> <dbl> <dbl> <int> <chr> <chr> <chr>
1 Bobo-Dioulasso 11.2 -4.29 6419 Burkina Faso Houet Haut-Bassins
2 Ouagadougou 12.4 -1.53 5969 Burkina Faso Kadiogo Centre
Okay, ici est un reprex de votre code. Cela nous donne une idée de ce qui se passe.
Je ne connais pas le "package" {raster} mais est-il possible que vous souhaitiez uniquement les deux régions "Hauts-Bassins" et "Centre" et non la carte entière du pays ?
D'où vient également le '30' dans "col.regions=couleurs(30) ?
library(haven)
library(tidyverse)
library(labelled)
library(questionr)
library(raster)
#> Loading required package: sp
#> The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
#> which was just loaded, were retired in October 2023.
#> Please refer to R-spatial evolution reports for details, especially
#> https://r-spatial.org/r/2023/05/15/evolution4.html.
#> It may be desirable to make the sf package available;
#> package maintainers should consider adding sf to Suggests:.
#>
#> Attaching package: 'raster'
#> The following object is masked from 'package:dplyr':
#>
#> select
Carto <- structure(list(ville = structure(1:2, levels = c("Bobo-Dioulasso",
"Ouagadougou"), label = "Ville de l'enquête", class = "factor"),
lat = c(11.1848143629427, 12.3742377311066), long = c(-4.28659431353817,
-1.53454603158683), Effectif = c(6419L, 5969L), pays = c("Burkina Faso",
"Burkina Faso"), province = c("Houet", "Kadiogo"), region = c("Haut-Bassins",
"Centre")), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"))
BfForm <- raster::getData(name="GADM", country="BF", level=1) # ça marche
#> Warning in raster::getData(name = "GADM", country = "BF", level = 1): getData will be removed in a future version of raster
#> . Please use the geodata package instead
raster::plot(BfForm, col="lightgrey", main="Fond de carte du BF") # ça marche
idx<-match(BfForm$NAME_1, Carto$region) # ça ne marche pas
cor <- Carto[idx, "region"] # ça marche
BfForm$region <- cor # ça marche
couleurs <- colorRampPalette(c('white','red')) # ça marche
#Rprésentation graphique
raster::spplot(BfForm, "region", col.regions=couleurs(30),
main=list(label="effectif de la pop enquêtée", cex=.8), at=seq(5000,6500,200))
#> Warning in extend.limits(range(as.numeric(z), finite = TRUE)): NAs introduced
#> by coercion
#> Warning in min(x): no non-missing arguments to min; returning Inf
#> Warning in max(x): no non-missing arguments to max; returning -Inf
#> Warning in (function (x, y, z, subscripts, at = pretty(z), shrink, labels =
#> NULL, : NAs introduced by coercion
Non pas du tout,
il me fallait ajuster l'échelle de la représentation graphique.
Je souhaite afficher le nom des régions sur le graphique. Pourrais je avoir un coup de main?