Romance languages
D3 est une extension JavaScript très utile pour manipuler des données d’une façon interactive (réactive), spécialement des structures non linéaires. Naturellement, on peut utiliser D3 pour visualiser la géométrie de traits, la hiérarchie prosodique, etc. Avec R, on importe l’extension networkD3
pour générer ce type de structure. Dans l’exemple ci-dessous, on voit comment D3 peut nous aider à représenter les relations généalogiques entre les langues romanes.
Un exemple
Données
Pour générer le réseau ci-dessus, j’utilise deux data frames : nodes
et links
. Dans le premier, name
représente l’étiquette de chaque nœud ; group
sera utilisé pour définir les différentes couleurs du réseau ; et size
sera utilisé pour ajuster la taille de chaque nœud. Dans notre data frame, links
établit simplement les origines et les cibles de chaque lien dans le réseau. La variable value
sera utilisée plus tard pour définir la largeur de chaque lien.
Code
head(nodes); nrow(nodes)
#> name group size
#> 1 LATIN 1 250.0
#> 2 Classical Latin 1 100.0
#> 3 Vulgar Latin 1 80.0
#> 4 Continental Romance 2 25.0
#> 5 Sardinian Language 2 0.1
#> 6 Eastern Romance 2 15.0
#> [1] 24
head(links); nrow(links)
#> source target value
#> 1 0 1 5
#> 2 1 2 4
#> 3 2 3 3
#> 4 2 4 1
#> 5 3 5 2
#> 6 3 5 1
#> [1] 24
Code
Code
forceNetwork(Links = links,
Nodes = nodes,
Source = "source",
Value = "value",
Target = "target",
NodeID = "name",
Nodesize = "size",
Group = "group",
opacity = 1,
linkColour = "black",
linkDistance = JS("function(d) { return d.value * 20; }"),
colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);"),
charge = -150,
fontSize = 15,
legend = F,
linkWidth = JS("function(d) { return d.value*0.7; }"),
radiusCalculation = JS("Math.sqrt(d.nodesize)+10"),
opacityNoHover = 0.5,
zoom = FALSE)
Copyright © 2024 Guilherme Duarte Garcia