Un graphe dynamique et interactif avec d3.js

November 3, 2012
By

This post was kindly contributed by Baptiste Coulmont » R - go there to comment and to read the full post.

R est un logiciel formidable. Mais d’autres outils sont plus adaptés pour une présentation sur internet. Il existe un ensemble d’instructions appelées d3.js, qui permettent en quelques instructions de mettre en ligne des graphiques interactifs. Pour deux exemples, voir ce réseau de sociologues et ce réseau d’écrivains.

Voici comment faire la même chose, chez vous.
Ce “tutoriel” nécessite quelques connaissances de R et de html.

Le point de départ :
- vous avez créé un graphe, dans R, avec le package igraph. Ce graphe se nomme g2. Il est constitué de “vertices” (des individus par exemple) et de “edges” (des liens entre individus). À chaque individu, vous avez associé un “groupe” : V(g2)$group (il peut y avoir plein de groupes, numérotez-les)
- il s’agit maintenant d’exporter ce graphe (ou une partie), dans un format que d3.js peut comprendre… et d3.js comprend surtout le .json
- le code suivant va enregistrer un fichier .json utilisable par d3.js, en se servant du package RJSONIO

library(RJSONIO)
 
#creation de la partie qui renseigne les "nodes"
temp<-cbind(V(g2)$name,V(g2)$group)
colnames(temp)<-c("name","group")
js1<-toJSON(temp)
#creation de la partie qui renseigne les "liens"
write.graph(g2,"Desktop/edgelist.csv",format="edgelist")
edges<-read.csv("Desktop/edgelist.csv",sep=" ",header=F)
colnames(edges)<-c("source","target")
edges<-as.matrix(edges)
js2<-toJSON(edges)
#concatenation des deux parties
reseau<-paste('{"nodes":',js1,',"links":',js2,'}',sep="")
write(reseau,file="Desktop/reseau.json")

Created by Pretty R at inside-R.org

Ce fichier .json a normalement la structure suivante :

{
"nodes":[
{"name":"Nom1","group":4},
...
{"name":"Nom3","group":3}],
"links":[
{"source":0,"target":1},
...
{"source":138,"target":126}]
}

Ensuite : téléchargez ce fichier reseau.txt, enregistrez le dans le même répertoire que celui dans lequel est enregistré reseau.json. Changez l’extension (remplacez .txt par .html).

Sur un thème proche (sélectionné par l'ordinateur) :

  1. Cartographie avec R (suite)
  2. Cartographie avec R, “tutoriel”
  3. Début de cartographie avec R

Tags: , ,

Comments are closed.