Archives par mot-clé : visualisation

The popcircle package

The popcircle package has been released on GitHub. This one-function package computes circles with areas scaled to a variable and displays them using a compact layout (higher values in the center, lower values at the periphery). Original polygons are scaled to fit inside these circles (size are roughly proportional, not strictly).

The circles creation relies on packcircles, spatial data manipulation relies on sf.

## Package install:
library(remotes)
install_github("rCarto/popcircle")

This is a typical example of the package usage based on the dataset shipped with the package. We use cartography to display labels.

library(sf)
library(popcircle)
library(cartography)
mtq <- st_read(system.file("gpkg/mtq.gpkg", 
                           package="popcircle"))
res <- popcircle(x = mtq, var = "POP")
circles <- res$circles
shapes <- res$shapes
par(mar = c(0,0,0,0))
plot(st_geometry(circles), col = "#bcd39c", 
     border = "white", bg = "#eafdcf")
plot(st_geometry(shapes), col = "#fffc99", 
     border = "#fffc99", add = TRUE)
labelLayer(x = circles[1:20,], txt = "LIBGEO",
           halo = TRUE, col ="#8e8358", 
           cex = seq(.8,.4, length.out = 20),
           font = 2, bg = "white", r = .15, 
           overlap = FALSE)

The next example was a bit more difficult to design. We had to work on some multipolygons countries (e.g. France, USA or Russia) in order to keep only the largest polygon.

Code for the figure
Code for the figure

As popcircle produces sf objects it is possible to display them interactively:

You can find here an example of interactive visualisation using leaflet.

popcircle changes the position of spatial units. It will work better with regions already well known to the target audience. Chances are that the first figure on Martinique municipalities will be more appropriate and effective for the inhabitants of Martinique.

The tanaka package

The tanaka package has been released on CRAN. This package is a simplified implementation of the Tanaka method.
Also called « relief contours method », « illuminated contour method » or « shaded contour lines method », the Tanaka method enhances the representation of topography on a map using shaded contour lines.
North-west white contours represent illuminated topography and south-east black contours represent shaded topography.

The contour lines creation relies on isoband, spatial data manipulation and display rely on sf.

tanaka is a small package with only two functions:

  • tanaka() uses a raster object and displays the map directly;
  • tanaka_contour() builds the isopleth polygon layer.

This is a typical example of the package usage based on the dataset shipped with the package.

library(tanaka)
library(raster)
ras <- raster(system.file("grd/elev.grd", 
                          package = "tanaka"))
tanaka(x = ras, breaks = seq(80,400,20), 
       legend.pos = "topright", 
       legend.title = "Elevation\n(meters)")

In the second example, the elevatr package is used to download an elevation raster on a specific area. Then the tanaka_contour() function is used to create an isopleth layer and finally the tanaka()function is used to to display the map with a custom color palette.

library(tanaka)
library(elevatr)
# use elevatr to get elevation data
ras <- get_elev_raster(
  locations = data.frame(
    x = c(6.7, 7), y = c(45.8,46)
  ),
  z = 10, prj = "+init=epsg:4326", 
  clip = "locations"
)
# create the isopleth layer
iso <- tanaka_contour(
  x = ras, 
  breaks = seq(500,4800,250)
)
# display the isopleth layer
plot(st_geometry(iso))
# create a custom color palette
pal <- colorRampPalette(colors = c("#F9D3A1", "#1E315B"))
# display the map
tanaka(iso, col = pal(nrow(iso)))

The last example illustrates the use of tanaka with non-topographical data. This map is based on the Global Human Settlement Population Grid (1km).

Code for this figure

linemap

Le package linemap permet de réaliser des cartes composées de lignes. Le package contient deux fonctions, linemap et getgrid.

  • La fonction linemap permet d’afficher la carte. Elle prend en entrée un data frame contenant les coordonnées des points d’une grille régulière et au moins une variable.
  • La fonction getgrid permet de transformer un maillage de polygones irrégulier en data frame pouvant être utilisé avec la fonction linemap. Les polygones en entrée doivent être au format sf et, la fonction reposant sur des calculs d’intersections, il est fortement conseillé d’utiliser le package sf dans une version supérieure ou égale à 0.5-1. En effet à partir de cette version sf intègre les index spatiaux, ce qui accélère très significativement certains géotraitements (dont les calculs d’intersections).

Continuer la lecture de linemap

Magrit, la cartographie sans SIG

Magrit est une application de cartographie thématique en ligne.

Magrit propose la réalisation de représentations cartographiques usuelles telles que les cartes choroplèthes ou les cartes en symboles proportionnels. D’autres types de cartes, souvent difficiles à mettre en œuvre dans les logiciels du marché, sont aussi proposés : lissages, carroyages, discontinuités, anamorphoses, etc.

Magrit entend couvrir dans un même environnement logiciel, l’ensemble de la chaîne de traitement, de la donnée géographique à la carte d’édition.


Continuer la lecture de Magrit, la cartographie sans SIG

Reilly, Huff et Stewart : le package SpatialPosition

Comme annoncé sur le blog du Groupe ElementR nous venons de déposer sur le CRAN le package SpatialPosition qui permet permet de calculer et de visualiser les résultats de modèles de positions : modèle de Reilly, modèle de Huff et modèle de Stewart. Ces modèles d’interaction spatiale permettent de saisir l’influence exercée par un lieu sur tous les autres (aire de marché d’un commerce, aire d’influence d’une ville, etc.). Pour plus d’information et de ressources sur ce type de modèles, vous pouvez vous référer à la vignette associée au package. Continuer la lecture de Reilly, Huff et Stewart : le package SpatialPosition

Visualiser des flux : les graphiques circulaires

On a récemment porté à mon attention cette visualisation de flux orientés plutôt réussie.

Comment lire ces graphiques :

L’idée de base de ce graphique est de montrer simultanément les tailles relatives des flux entre les régions. Les origines et les destinations des flux sont représentés par les segments du cercle […]. La taille des flux est indiquée par la largeur des liens à leurs extrémités. La direction du flux est encodé à la fois par la couleur du lien (celle de la région d’origine) et par l’espace entre le lien et la région de destination.Source

Continuer la lecture de Visualiser des flux : les graphiques circulaires

Cartographie de flux avec R

La cartographie automatisée de flux n’est pas une chose facile à réaliser, et ce quelque soit le logiciel utilisé.
L’objectif de ce billet est de proposer un exemple de cartographie de flux avec R.

[MAJ] J’ai déplacé les données et ajouté le code sur GitHub. [/MAJ]

Les données utilisées sont des données de migration résidentielles issues de l’Insee et un fond de carte des départements français diffusé par l’IGN. Le tout est à télécharger ici sous forme de RData.

Cet exemple s’appuie sur le package igraph dédié à l’analyse et à la représentation de graphs. Les fonctionnalités de représentation de graphs orientés sont mobilisés pour représenter les migrations résidentielles entre les 6 départements les plus attractifs (hors Ile de France) entre 2003 et 2008. Continuer la lecture de Cartographie de flux avec R

Publier du code R sur WordPress sans plugin

[MAJ]

La présence des nombreux liens vers le site d’inside-r me chagrinais quand même un peu.
Après quelques tâtonnements j’ai finalement opté pour la solution suivantes :


<pre style="font-family: monospace;"><small><small>
monCode tres bien formaté et indenté
    parfois le signe "<-" ne passe pas
</small></small></pre>

Une fois le code pré-publié je le copie/colle dans R pour vérifier qu’il fonctionne toujours bien.

[MAJ] Continuer la lecture de Publier du code R sur WordPress sans plugin

Création d’une matrice de distances routières avec des outils et des données libres (1/2)

Comment créer une matrice de distances (calculées en kilomètres ou en minutes) entre plusieurs points du globe?

Il existe plusieurs solutions commerciales et plus ou moins fermées pour construire ce genre de matrices (The Google Distance Matrix API, Bing Routes API ou MapQuest par exemple). Ces solutions présentent plusieurs inconvénients : limites d’extraction, limites d’utilisation, limite de diffusion…

La solution proposée ici n’utilise que des données et des outils libres :

  • Un réseau routier, issu d’OpenStreetMap (OSM).
  • Le logiciel Osmosis permettant de manipuler les données OSM.
  • L’application GraphHopper pour calculer les itinéraires.
  • R pour interroger l’API de GraphHopper et constituer la matrice de distance.

L’objectif est ici de calculer une matrice de distances entre une vingtaine de villes françaises, belges, allemandes luxembourgeoises et néerlandaises. Continuer la lecture de Création d’une matrice de distances routières avec des outils et des données libres (1/2)

Visualisation de données médiatiques et géographiques avec R

Dans le cadre des rencontres de statistiques appliqué du Service Méthodes Statistiques de l’Ined (SMS) j’ai, avec Marta Severo, fait une présentation portant sur la visualisation de données médiatiques et géographiques avec R.

Voici le résumé de la présentation :

La combinaison d’informations géographiques et d’informations médiatiques peut s’avérer particulièrement fructueuse pour l’analyse des évènements médiatiques internationaux et notamment pour l’étude de leur propagation spatio-temporelle.
L’objectif de cette communication est de présenter les caractéristiques de la donnée médiatique et de montrer les possibilités que le logiciel R offre pour le traitement et la visualisation de ce type de données.
Nous présenterons quelques exemples faisant appel à l’interactivité, à l’animation et à la cartographie à travers l’analyse de la couverture médiatique internationale du conflit de Wukan, un village du sud de la Chine, où après des mois de protestations contre l’accaparement illégal de terres les habitants ont obtenu des élections libres.

Et voici un lien vers la page web associée à la présentation. Cette page a été conçue avec le package knitr.