fishEye

Dans R

Le package fishEye, développé par Timothée Giraud est disponible sur gihub. Il propose 2 méthodes de déformation : log et racine carrée.

La méthode ‘log’ transforme les distances au centre de la façon suivante : d’ = log(1 + 10^(-k) * d)

La méthode ‘sqrt’ transforme les distances au centre de la façon suivante : d’ = sqrt(d)

install.packages(remotes)
library(remotes)
install_github("riatelab/fisheye")
library(sf)
communes <- st_read("../data/isere.geojson", quiet = TRUE ) %>% st_transform(2154)

On charge la library

library(fisheye)

On zoom sur grenoble

ctr = communes[communes$name=="Grenoble",]

Création d’un carroyage pour voir la déformation

bb <- st_bbox(communes)
grid = st_make_grid(communes, cellsize = 5000, square = TRUE)
grid = st_sf(id = rep("",length(grid)), geometry = grid)

Fonction d’affichage

plotmapfisheye = function(k){
communes_fisheye <- fisheye(communes, centre = ctr, method = 'log', k = k)
grid_fisheye  <- fisheye(grid, centre = ctr, method = 'log', k = k)
plot(st_geometry(communes_fisheye), border = "white", col = "#c291bc")
plot(st_geometry(communes_fisheye[communes_fisheye$name == "Grenoble",]), border = "white", col = "#cf5da0", lwd = 0.5,  add= TRUE)
plot(st_geometry(grid_fisheye), border = "#40393d", lwd = 0.3, add = TRUE)
title(main = paste0("k = ",k))
}

Let’s go

par(mfrow = c(3, 2), mar = c(0,0,2,0))
plotmapfisheye(6)
plotmapfisheye(5)
plotmapfisheye(4)
plotmapfisheye(3)
plotmapfisheye(2)
plotmapfisheye(1)

Le but de ce genre de méthode, c’est de d’élargir l’espace là où les données sont denses. Exemple : d’où viennent les travailleurs du 15e arrondissement de Paris (by Tim)

https://rcarto.github.io/fisheye-example/