Categories

Archives

Archives de la catégorie : 'cartographie'

Vous êtes ici. Là !

C’est peut-être le besoin de se rassurer, de s’assurer qu’on n’est pas seulement ici, mais bel et bien , qui fait se rencontrer le bout d’un doigt et la carte des stations.

Quand j’étais petit, et que Paris était une ville étrangère, ces zones arrachées m’indiquaient où j’étais : il suffisait de les repérer pour pouvoir ensuite s’orienter. Les traces d’usage collectif remplaçaient fort bien le “Vous êtes ici” accolé à certaines cartes. Crowdsourcing avant l’heure, objectivation d’une combinaison du volume de fréquentation de chaque station et de son caractère touristique. Aujourd’hui, dans la plupart des stations, les cartes sont protégées par un film plastique, qui empêche d’user trop vite la zone de la station.

En 1994, une artiste italienne, Paola di Bello, avait photographié, dans les 350 stations du métro, ces zones. Pour ensuite en reconstituer une grande carte du métro, sur lesquelles les stations étaient soumises à la disparition paradoxale. On trouve quelques explications de sa démarche sur le site de Paola di Bello.
Note : Ce billet est un effet secondaire de la lecture de Petite sociologie de la signalétique : Les coulisses des panneaux du métro.

Des cartes, et des réseaux, et un mystère

J’ai trouvé un sondage eurobarometre amusant (Eurobarometer 73.3, New Europeans) à l’adresse suivante http://ec.europa.eu/public_opinion/archives/ebs/ebs_346_en.pdf. Cette question m’a particulièrement intéressé : «QB10T : quels sont les pays autres que (NOTRE PAYS) auxquels vous vous sentez le plus attaché ?»
Si l’on ne garde que le pays le plus cité, l’on peut obtenir le graphe suivant :

Les Belges, les Luxembourgeois, les Portugais, les Italiens, les Néerlandais, les Espagnols se sentent plus attachés à la France qu’à un autre pays (en dehors du leur). Les Français se tournent vers l’Espagne (comme les Royaumunistes et les Italiens).
On peut essayer de représenter le graphe précédent en le greffant sur une carte de l’Europe.

C’est une manière de mettre en lumière le fait que, souvent, les pays auxquels les citoyens européens se sentent attachés sont des pays qui leur sont géographiquement proches. Les exceptions : la russophilie des Bulgares, l’italomania des Roumains… n’en ressortent que plus.
Le mystère auquel ces données nous confrontent, c’est bien d’expliquer, maintenant, pour quelle raison étrange la France n’a plus gagné l’Eurovision depuis 1977.

  Pratiquons l’open-data : eurobarom2011QB10T (format XLS). Ces deux images ont été faites avec R et divers “packages”, igraph et maptools.

Et en France ?

L’on trouve sur un site de l’université de Strasbourg une liste de tous les tremblements de terre à proximité de la France métropolitaine, depuis 1980 : ici.
Ce qui donne, une fois gardés les tremblements de magnitude supérieure à 3, ceci :

La taille et la couleur des points sont proportionnels à la magnitude.
(fait avec R, package maptools, en suivant mon “tutoriel pour la cartographie avec R“)

twitter et le réseau, suite

Mon exploration des “amis de mes amis”, sur twitter [rappel], ne m’a pas fait découvrir grand chose, sinon qu’ils ont tendance à me “follower”. Les spécialistes des réseaux sociaux diraient que c’est parce que “tu fais du structural à partir d’égocentré”, et ils doivent avoir raison.
Mais j’ai découvert deux ou trois choses avec R. Et notamment le package igraph.

Le twittplot au format PDF

Dans l’image précédente, la couleur dépend du score “k-core” de chaque personne (ou compte twitter), et la taille des points des “liens entrants” (plus un compte est suivi par mes “amis”, plus le point est gros). La disposition des points a été générée par l’algorithme Kamada-Kawai.

Il est quand même possible d’être surpris par certains résultat. La centralité d’intermédiarité permet de repérer des acteurs “intermédiaires”, qui me lient, indirectement, avec d’autres mondes-twitter. C’est particulièrement vrai pour certains compte twitter. Voici un PDF qui montre, je pense, que certains “petits” acteurs (que je “followe” mais qui sont peu “followés” par mes amis), sont des intermédiaires.

Twitter et le réseau

Je voulais réussir à savoir qui “followe” qui, parmi les personnes que je “followe” sur twitter, notamment afin de savoir s’il existe des personnes qui, suivies par nombre des personnes dont je lis la prose, pourraient m’intéresser.
A la fin de ma réflexion, pour l’instant parcellaire, voici ce que j’arrive à produire :

Pour produire cela, le code est assez simple (mais pas vraiment, en fait). Je le reproduis ci-dessous. Le principal problème est lié au fait que les comptes “privés” causent une erreur (« Erreur dans twFromJSON(out) : Error: Not authorized »). Et R ne gère pas encore le protocole utilisé par twitter pour se connecter, OAuth…

Dans le code suivant :
1- je charge les “bibliothèques” nécessaires (twitteR, plyr, igraph)
2- je télécharge la liste de mes “amis” (les personnes que je suis, sur twitter)
3- pour chaque “amis” je télécharge la liste de 20 “amis”, et j’installe tout cela dans un tableau de la forme “NomDeLAmi | NomDeSonAmi”. Pourquoi seulement 20 amis : pour que ça aille plus vite, je n’ai pas besoin, à l’heure actuelle, de la totalité des amis d’amis.
4- je transforme cela en graphe, et je dessine le graphe

library(twitteR)
library(plyr)
library(igraph)
f<-userFriends('coulmont', n=100)
friends<-ldply(f,screenName)
fff<-table(NA,NA)
for (i in 1:nrow(friends))
{
f<-userFriends(friends[i,], n=20)
ff<-ldply(f,screenName)
fff<-rbind(fff,cbind(rep(friends[i,],nrow(ff)),ff))
}
ats.g <- graph.data.frame(fff, directed=T)
coords <- layout.fruchterman.reingold(ats.g, dim=3)
V(ats.g)$label <- V(ats.g)$name
plot(ats.g, layout=coords,vertex.size=.5*degree(ats.g),vertex.label.cex=.3*log((degree(ats.g)+.1)),edge.arrow.size=0.1)

Created by Pretty R at inside-R.org

Pour produire cela, je me suis appuyé sur divers billets de blog : Cornelius Puschmann : générer des graphes de retweet, une question sur stackoverflow, R-chart, analyser des données de twitter avec R

 
L’image ci-dessous a été réalisée en prenant les 200 “amis” que suivent une trentaine de mes “amis”, puis en ne gardant du graphe que ceux qui étaient suivis plus de 4 fois dans le graphe.

Un peu de sociologie électorale

Je n’avais qu’une heure, alors c’est fait à l’arrache.
Voici la “couleur” politique de votre bureau de vote, si vous votez à Paris :

Les données proviennent de Paris “Open Data” et décrivent les résultats du premier tour des régionales de 2010. Je me suis inspiré de Mounir&Simon mais j’ai fait une petite classification ascendante pour distinguer des “clusters” (ils ne distinguaient que Droite / Gauche et cela me semblait un peu trop simple).


Groupe 1 : noir : une zone frontière (mais où Pécresse fait le double de Huchon)
Groupe 2 : rouge : ce doit être une ancienne zone à droite, passée à gauche. Huchon et Duflot, ensemble, sont bien au dessus de Pécresse.
Groupe 3 : vert : C’est là où la candidate verte, Duflot, fait son score maximal et talonne Huchon. Le PC est aussi en “force”.
Groupe 4 : bleu foncé : LA zone Pécresse : là, on vote à droite en majorité.
Groupe 5 : bleu clair : la zone des marges, où le score de Pécresse est faible, et où les petits candidats (Arnautu, Besancenot, Governatori, Kanoute, Laurent, Mercier…) font un score plus important qu’ailleurs.

Mise à jour, avec de nouvelles couleurs.
Les groupes sont construits de la même manière que ci-dessus, mais le “barplot”, sous la carte, insiste sur les “petits” candidats, en insistant sur la déviation par rapport à leur moyenne sur Paris.


[Attention : c’est embrouillé. Ce n’est pas “faux”, mais le “barplot” ne représente pas les informations sur lesquelles je me suis basé pour construire les groupes.].

 
Où ont-ils (et elles) fait leur meilleur score ?

Deuxième mise à jour
Une analyse des correspondances produit ce joli graphe. L’Axe 1 explique les 3 quarts de l’inertie (et place les personnes sur un axe droite (à gauche) — gauche (à droite du dessin).
Mais l’on voit aussi l’importance du 2e axe : qui répartit les candidats de partis “hétérodoxes” : FN, NPA, Verts, etc…

Quelques courbes de niveau

Sur la carte suivante, chaque point représente le lieu de réunion d’une “église d’expression africaine” :

Cette série de points montre la dispersion, mais ne permet pas de repérer “immédiatement” une sorte de centre. Ce que fait la carte suivante, à lire comme des courbes de niveau. Il y a peut-être des espaces “inégalement religieux”.

Mais que trouve-t-on donc au centre ? Des églises plus anciennement implantées ? des “grosses” églises qui attirent, comme un supermarché des petits concurrents différenciés, d’autres églises, plus petites, qui tentent de capter le public… ?
Ces cartes ont été produites à partir de cet exemple de cartographie du crime à Houston, TX.

R, cartographie, suite

Comment obtenir rapidement cette carte représentant le taux brut de natalité dans divers pays d’Europe, en 2009 :

Il faut tout d’abord disposer de données (issues de Eurostat) et d’un fichier shapefile — trouvé sur le site de la Commission européenne par François “Politbistro” B. — (Voici le tout dans une archive zippée : maps.zip)

Voici le code.

library(maptools)
library(RColorBrewer)
library(classInt)
library(reshape)
setwd("~/Desktop/maps")
data <- read.table("tauxbrutnatalite.csv",header=T,sep=";")
head(data)
europe<- readShapeSpatial("CNTR_RG_60M_2006.shp",proj4string=CRS("+proj=longlat"))
summary(europe)
xcoord <- c(-10,40)
ycoord <- c(35,70)
nclr <- 6
colours <- brewer.pal(nclr, "RdBu")
v<-data$X2009
class <- classIntervals(v, nclr, style="equal")
colcode <- findColours(class, colours)
test<-match(europe$CNTR_ID,data$code)
x<-colcode[test]
x[ is.na(x) ] <- "darkgrey"
plot(europe,col=x,xlim=xcoord,ylim=ycoord)
legend(-10,70,legend=names(attr(colcode,"table")), fill=attr(colcode, "palette"), cex=1.2, bty="n")

Somme toute, ce n’est pas un code très lourd pour générer une aussi jolie carte (les couleurs auraient pu être mieux choisies, ainsi que les intervalles, mais tout ceci est grandement modifiable). Ce qui est compliqué, c’est d’associer les données dont on dispose et le fichier shapefile. Deux problèmes se posaient ici :

  1. les pays, dans le shapefile, sont indexés par leur code à 2 lettres (FR pour France…) : il fallait donc travailler un peu les données d’Eurostat, en Français
  2. il fallait ensuite être certain que R coloriait les pays avec les bonnes indications : c’est à cela que l’instruction match sert : elle établit, dans l’objet “test” une grille de correspondance entre le code-pays du fichier de données et le code-pays du fichier shapefile.

J’ai colorié en gris les pays pour lesquels les données manquent.
Maintenant, François “Politbistro” B., à toi de jouer.

Basques et bretons au collège

Dans un quotidien, récemment, l’un des frères Fassin disait que la culture, ce n’est pas une explication, c’est ce qu’il faut expliquer. Pour cela, il faut probablement encore croire que la culture existe un tant soit peu, ce qui n’est pas vraiment mon cas.
Cependant, il faut reconnaître que certaines personnes construisent activement des identités collectives et qu’on ne peut les effacer aussi rapidement. J’avais déjà mentionné l’existence de prénoms bretons : depuis une cinquantaine d’années, des promoteurs de la culture bretonne publient dictionnaires, calendriers, listes… comprenant ce qu’ils appellent des “prénoms bretons”. Si l’on agrège différentes listes, l’on finit par obtenir une grosse liste de prénoms bretons.
Le “fichier des prénoms” de l’INSEE propose des données au niveau national et au niveau de chaque département. Mais rien en dessous : rien au niveau des communes ou des cantons.
Mais, peut-être par inadvertance, l’éducation nationale, elle, donne accès à des données intéressantes. Une bonne partie des académies publient les résultats nominatifs au brevet des collèges. Henry Ciesielski a repéré cela et a réussi à récupérer une bonne partie de cette liste.
L’on dispose ainsi d’informations assez fines au niveau de chaque collège. La suite est le résultat d’une collaboration entre Henry et moi. Les 4800 collèges ont été géolocalisés (assez grossièrement et avec des erreurs, car nous ne disposions que de la commune, pas de l’adresse postale complète). Et, pour chaque collège, la proportion de “prénoms bretons” parmi les admis au brevet a été calculée.
La carte suivante permet de voir, rapidement, qu’il y a plus de prénoms bretons en Bretagne qu’en dehors. Il est bien dommage que les académies limitrophes n’aient pas publié les résultats au brevet : l’on aurait pu voir où s’arrêtait la frontière culturelle… [Notez : la taille des points est fonction du nombre de prénoms bretons, la couleur fonction de la proportion.]

Des résultats plus fins sont disponibles : les collèges “Diwan” regroupent plus d’enfants avec des prénoms bretons.
La carte suivante m’intéresse plus. En effet, les promoteurs de la culture bretonne semblent avoir réussi un double essai : rendre visible les prénoms bretons à l’état civil pour une minorité non négligeable d’enfants, et diffuser à l’ensemble de la Bretagne-région cette pratique. Cela dans un contexte intéressant : plus personne ou presque ne parle breton…
Les promoteurs du basque n’en sont pas là encore. Voyez la carte : seuls une poignée de collèges contiennent une proportion importante de prénoms basques, et cela est limité à l’extrême sud-ouest du Sud-Ouest. Autant les Morgane, les Gwenn et les Ewen se sont diffusés au delà du monde des bretonisants, autant les Bixente, les Ainhoa et les Aguxtin restent confinés au pied des Pyrénées-Atlantiques. [Ce n’est peut-être pas vrai pour quelques prénoms, mais, pris collectivement, ils n’ont aucune existence en dehors de la micro-région.]

Prenez ces deux cartes comme un début de recherche, une première visualisation des effets à la fois de la libéralisation du choix du prénom et, je le pense, des entreprises politiques de différenciation culturelle.

Amusements cartographiques

Pour rédiger mon tutoriel cartographique pour R, je cherchais des données variées. J’ai réussi à trouver les résultats à la présidentielle de 2007, par départements. J’ai du retravailler un peu le fichier, que je donne à la collectivité :
presidentielles.csv
Avec ça, on peut faire de jolies cartes. Mes premières essaient de repérer les zones où les candidats ont reçu leur pourcentages maxi et mini de votes.
Je classe les données par intervalles avec le package classInt :
class<-classIntervals(plotvar, nclr, style=”equal”)

 

 

Je sais, ces cartes n’ont rien de formidable, on en trouve de mieux sur internet, il n’y a pas de légende… Mais vous pouvez les reproduire ces cartes. Talk about empowerment !

plotvar <- presidentielles$schivardi/presidentielles$exprime
nclr <- 6
plotclr <- brewer.pal(nclr,”RdBu”)
plotclr <- plotclr[nclr:1] # reorder colors
class <- classIntervals(plotvar, nclr, style=”equal”)
colcode <- findColours(class, plotclr)
plot(departements,col=colcode,lty=”blank”,lwd=.5)
title(main=”Votes pour Schivardi”)