{"word_count": 837, "character_count": 8074}
Conçu comme une boite à outil cohérente et documentée dédiée à la cartographie thématique, le package cartography permet de créer des cartes avec R. &#160;Les représentations les plus classiques sont bien entendu disponibles (symboles proportionnels, cartes choroplèthes, cartes qualitatives) et d'autres modes de représentations souvent difficiles à mettre en œuvre dans un logiciel de cartographie sont aussi proposées (cartes de flux, discontinuités, carroyages, cartes par points...). Le package propose également quelques fonctionnalités supplémentaires : palettes de couleurs (simples et doubles gradations dissymétriques), éléments d’habillage (échelle , orientation, titre, sources, étiquettes...), des légendes paramétrables, et enfin l’accès à des API cartographiques...&#160;Ce package est développé au sein de l'UMS RIATE par Timothée Giraud et Nicolas Lambert. La version stable est sur le CRAN, la version de développement est hébergée sur GitHub. &#160;Pour avoir un aperçu rapide de la manière dont on peut utiliser le package, cette vignette développe, via des scripts commentés, quelques exemples de création de cartes.Ci-dessous vous trouverez le code qui permet de générer la composition cartographique réalisée avec le package :library(cartography)# Load datadata(nuts2006)# Save image# png("cartocomp.png", width = 700, height = 600, res=96)# set marginsopar &#60;- par(mar = c(0,0,0,0))# Plot basemapsplot(nuts0.spdf, border = NA, col = NA, bg = &#34;#A6CAE0&#34;)plot(world.spdf, col  = &#34;#E3DEBF80&#34;, border=NA, add=TRUE)plot(nuts0.spdf, border = &#34;white&#34;, col = &#34;#E3DEBF&#34;, lwd= 1.1, add=T)# Plot an OSM Layerspdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#039;AT&#039;, &#039;CH&#039;, &#34;SI&#34;, &#34;IT&#34;),]OSMTILES &#60;- getTiles(spdf = spdf, type = &#34;osm&#34;, zoom = 5)tilesLayer(OSMTILES, add=T)# Plot a choropleth layerspdf &#60;- nuts2.spdf[substr(nuts2.spdf$id,1,2) ==&#34;DE&#34;,]nuts2.df$gdppercap &#60;- nuts2.df$gdppps2008 / nuts2.df$pop2008choroLayer(spdf = spdf, df = nuts2.df, var = &#34;gdppercap&#34;, border = &#34;white&#34;,            lwd = 0.4, col = carto.pal(pal1 = &#34;sand.pal&#34;, n1 = ),           legend.pos = &#34;n&#34;, add= TRUE)# Plot proportional squaresspdf &#60;- nuts1.spdf[substr(nuts1.spdf$id,1,2) %in% c(&#34;BE&#34;, &#34;NL&#34;, &#34;LU&#34;),]propSymbolsLayer(spdf = spdf, df = nuts1.df, var = &#34;pop2008&#34;,                  border = &#34;#7C000C&#34;,                 symbols = &#34;square&#34;, k = 0.15, col = &#34;#ff000080&#34;,                  legend.pos = &#34;n&#34;)# Plot proportional barsspdf &#60;- nuts1.spdf[substr(nuts1.spdf$id,1,2) %in% c(&#34;TR&#34;),]plot(spdf, add=T, col = NA, border = &#34;grey50&#34;, lwd = 0.5, lty = 2)propSymbolsLayer(spdf = spdf, df = nuts1.df, var = &#34;pop2008&#34;,                  symbols = &#34;bar&#34;, k = 0.05, col = &#34;#155F28&#34;,                  legend.pos = &#34;n&#34;, border = &#34;grey&#34;)# Plot a typologie layerspdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;EE&#34;,&#34;LT&#34;,&#039;LV&#039;),]typoLayer(spdf = spdf, df = nuts3.df, var = &#34;id&#34;, add=T, legend.pos = &#34;n&#34;)# Plot proportional circlesspdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;FI&#34;),]propSymbolsLayer(spdf = spdf, df = nuts3.df, var = &#34;pop2008&#34;,                  k = 0.05, col = &#34;#301551&#34;, legend.pos = &#34;n&#34;, border = &#34;white&#34;)# Create and plot a grid layer (absolute)spdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;FR&#34;),]mygrid &#60;- getGridLayer(spdf = spdf,cellsize = 50000)datagrid.df &#60;- getGridData(mygrid, nuts3.df, &#34;pop2008&#34;,dfid=NULL)propSymbolsLayer(spdf = mygrid$spdf, df = datagrid.df,                  legend.pos = &#34;n&#34;, border = &#34;white&#34;,                 var = &#34;pop2008&#34;, k=0.019, col=&#34;darkblue&#34;, add=TRUE)# Create and plot a grid layer (relative)spdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;ES&#34;, &#34;PT&#34;),]mygrid &#60;- getGridLayer(spdf = spdf,cellsize = 75000)datagrid.df &#60;- getGridData(mygrid, nuts3.df, &#34;pop2008&#34;,dfid=NULL)datagrid.df$densitykm &#60;- datagrid.df$pop2008_density*1000*1000cols &#60;- carto.pal(pal1 = &#34;wine.pal&#34;, n1 = 6)choroLayer(spdf = mygrid$spdf,df = datagrid.df,var = &#34;densitykm&#34;, add=TRUE,           border = &#34;grey80&#34;,col=cols,           legend.pos = &#34;n&#34;, method = &#34;q6&#34;)# Plot a dot density layerspdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;SE&#34;, &#34;NO&#34;),]dotDensityLayer(spdf = spdf, df=nuts3.df,var=&#34;pop2008&#34;, add = TRUE,                 col = &#34;grey30&#34;,                n = 100000,  pch = 20, cex = 0.5, legend.pos = &#34;n&#34;)# Plot a proportional links layertwincities.df &#60;- twincities[substr(twincities$i,1,2) %in% c(&#34;IT&#34;) &#38;                               substr(twincities$j,1,2) %in% c(&#34;IT&#34;,&#039;AT&#039;, &#34;SI&#34;,                                                               &#34;GR&#34;, &#34;CH&#34;), ]twincities.spdf &#60;- getLinkLayer(spdf = nuts2.spdf, df = twincities.df[,1:2])gradLinkLayer(spdf = twincities.spdf, df = twincities.df,              spdfids = &#34;i&#34;, spdfide = &#34;j&#34;,              dfids = &#34;i&#34;, dfide = &#34;j&#34;,legend.pos = &#34;n&#34;,              var = &#34;fij&#34;, breaks = c(1,2,4,10), lwd = c(0.5,4,10),              col = &#34;#92000090&#34;, add = TRUE)# Plot a label layerspdf &#60;- nuts0.spdf[nuts0.spdf$id %in% c(&#34;IS&#34;, &#34;CY&#34;),]df &#60;- data.frame(id = spdf$id, names = c(&#34;Chypre&#34;, &#34;Islande&#34;))labelLayer(spdf = spdf, df = df, txt =  &#34;names&#34;, font = 2)# Plot Discontinuitiesspdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;PL&#34;, &#34;CZ&#34;, &#34;SK&#34;, &#34;HU&#34;),]bord &#60;- getBorders(spdf)cols &#60;- carto.pal(pal1 = &#34;blue.pal&#34;, n1 = 3, pal2 = &#34;green.pal&#34;, n2 = 3)nuts3.df$gdppercap &#60;- nuts3.df$gdppps2008/nuts3.df$pop2008choroLayer(spdf = spdf, df = nuts3.df, var = &#34;gdppercap&#34;, method = &#34;q6&#34;,           col = cols, add=T, border = NA, legend.pos = F)discLayer(spdf = bord, df = nuts3.df,          var = &#34;gdppercap&#34;, col=&#34;red&#34;, nclass=5,          method=&#34;quantile&#34;, threshold = 0.25, sizemin = 1,          sizemax = 3, type = &#34;rel&#34;,           legend.pos = &#34;n&#34;, add=TRUE)# Plot a double proportional triangles layerspdf &#60;- nuts1.spdf[substr(nuts1.spdf$id,1,2) %in% c(&#34;IE&#34;,&#34;UK&#34;),]propTrianglesLayer(spdf = spdf, df = nuts1.df, var1 = &#34;birth_2008&#34;,                    var2 = &#34;death_2008&#34;, legend.pos = &#34;n&#34;, k = 0.075)# Plot a proportional symbols layer + chorospdf &#60;- nuts3.spdf[substr(nuts3.spdf$id,1,2) %in% c(&#34;GR&#34;, &#34;BG&#34;, &#34;RO&#34;, &#34;MK&#34;),]propSymbolsChoroLayer(spdf = spdf, df = nuts3.df, var2 = &#34;gdppercap&#34;,                       var = &#34;gdppps2008&#34;,add=T, k = 0.05,                      col = carto.pal(pal1 = &#34;orange.pal&#34;, 8),                       legend.var.pos = &#34;n&#34;, legend.var2.pos = &#34;n&#34;)# Plot a proportional symbol layer + typospdf &#60;- nuts2.spdf[substr(nuts2.spdf$id,1,2) %in% c(&#34;DK&#34;),]nuts2.df$bidon &#60;- 5propSymbolsTypoLayer(spdf = spdf, df = nuts2.df, var = &#34;bidon&#34;, var2 = &#34;id&#34;,                      add=T,                     legend.var.pos = &#34;n&#34;, legend.var2.pos = &#34;n&#34;)# Plot a layout (sources, scale, text, etc.)layoutLayer(title = &#34;&#34;,             sources = &#34;Eurostat - 2008, OpenStreetMap et contributeurs - 2015&#34;,              author = &#34;T. Giraud &#38; N. Lambert © UMS RIATE - 2015&#34;,             col = NA,             coltitle = &#34;black&#34;,             frame = FALSE,             south = TRUE)  text(x = 6278256, y = 4273436, labels = &#34;Composition\ncartographique     réalisée avec\nle package\ncartography&#34;,     cex = 1.2, adj = 1, pos = 1, font=2)# dev.off()