Je travaille avec des graphes dans R. J'utilise actuellement igraph et j'aimerais pouvoir tracer des arêtes bidirectionnelles "arêtes réciproques" d'un graphe. Jusqu'à présent, j'ai vu qu'il est possible de tracer des graphes "bidirectionnels" mais pas des bords réciproques, par exemple: E (1,3) et E (3,1) pourraient potentiellement être représentés comme un bord bidirectionnel < ->, mais à la place je voudrais tracer deux bords parallèles l'un pointant dans la direction opposée de l'autre || . Il existe dans Rgraphviz une option lors du traçage "plot (rEG, recipEdges =" distinct ")" qui fait cela, mais j'aime plus l'aspect des graphes sur igraph. Merci d'avance.R bords réciproques dans igraph dans R
Répondre
Dans igraph
, vous pouvez utiliser l'attribut de bord curved
pour courber les bords souhaités.
Par exemple, voici une matrice petite contiguïté à base graphique:
library("igraph")
adj <- matrix(c(
0,1,1,
1,0,1,
0,0,0),3,3,byrow=TRUE)
library("igraph")
G <- graph.adjacency(adj)
Le bord entre le noeud 0 et 1 est bidirected (En fait, ce n'est pas, il y a deux bords et ils regardent comme un bord bidirected parce qu'ils sont droites) .:
plot(G)
Pour modifier cela, nous pouvons utiliser le edgelist:
E <- t(apply(get.edgelist(G),1,sort))
E(G)$curved <- 0
E(G)[duplicated(E) | duplicated(E,fromLast =TRUE)]$curved <- 0.2
plot(G)
Une autre option est mon paquet, lorsque cela est le comportement par défaut:
library("qgraph")
qgraph(adj)
qui peut être supprimé avec l'argument bidirectional
.
Essayez plot(graph, edge.curved=TRUE)
. Cela fonctionne certainement dans igraph 0.6, et il peut aussi fonctionner dans igraph 0.5.4 (pas sûr quand il a été ajouté).
C'est génial, ce que j'ai aimé de la réponse de @sachaepskamp, c'est que vous êtes capable de modifier la séparation entre les bords, grâce aux deux. – megyn
- 1. Export igraph Problèmes dans R
- 2. r igraph: supprimer les bords de 2 groupes de vecteurs
- 3. Interprétation des arguments dans watts.strogatz.game() dans igraph en utilisant R
- 4. tkplot à igraph dans les R
- 5. sommets d'espacement uniformément dans igraph en r
- 6. distribution de degré de noeud utilisant R et igraph
- 7. R: Affichage à l'image exacte de nœud dans iGRAPH
- 8. Importation liste de bord dans igraph en R
- 9. affichage bords bi-direction igraph
- 10. R: tkplot donnant une erreur dans R
- 11. R: Affichage sélectif des nœuds lors du tracé d'un igraph
- 12. Comment le mien pour des motifs en R avec iGRAPH
- 13. Un autre problème avec les coordonnées en Igraph pour R
- 14. Comment obtenir des cycles fondamentaux avec R + iGRAPH
- 15. Le paquet igraph R est-il plus parfait que python-igraph?
- 16. Changer la couleur de fond de tkplot (igraph, R)
- 17. dans R
- 18. Mappage du tuple (R, R) en ((R, R), R)?
- 19. Comment puis-je allonger les bords dans un tracé de réseau igraph (layout = fruchterman.reingold)?
- 20. Comportement inattendu dans R avec la commande cat dans R
- 21. Comment trouver des mesures après la détection de la communauté dans igraph (R)?
- 22. Ajouter un nœud et supprimer une arête spécifiée dans R igraph
- 23. Comment sauvegarder une matrice d'adjacence avec "get.adjacency()" dans R, avec iGraph et RStudio?
- 24. Comment obtenir le vertex d'un nom vertex dans R et Igraph?
- 25. Est-ce que get.edgelist dans la bibliothèque R igraph renvoie les arêtes dirigées appropriées?
- 26. R instances R + RODBC
- 27. Quelle mise en page devrais-je utiliser pour obtenir des bords sans chevauchement dans igraph?
- 28. Clustering Photos dans R?
- 29. Fonction decompose.graph dans R
- 30. Variables statiques dans R
Merci beaucoup, je vois que vous pouvez même mettre en place la séparation entre les bords parallèles, c'est génial. – megyn