Je possède ce jeu de données:nœuds de couleur en fonction de la condition dans un graphique
df <- structure(list(name = structure(c(1L, 3L, 4L, 5L, 6L, 7L, 8L,
9L, 10L, 2L), .Label = c("node1", "node10", "node2", "node3",
"node4", "node5", "node6", "node7", "node8", "node9"), class = "factor"),
value = c(100L, 14L, 2L, 0L, 25L, 0L, 0L, 43L, 7L, 0L)), .Names = c("name",
"value"), class = "data.frame", row.names = c(NA, -10L))
et je voudrais les nœuds qui ont une valeur égale à 0 ont la couleur rouge et les noeuds ayant une valeur égale ou supérieure à avoir rouge la couleur et leur cercle sont plus grands selon la valeur de la valeur.
Est-il possible de le faire en utilisant igraph?
Jeu de données avec des bords. Entrée dataframe:
EDIT de commentaire
J'ai fait cet ensemble de données basé sur les livres et les citations. Livres = noeuds et citations = lien. Chaque livre est unique et a des citations. La citation pourrait être commune à plus d'un livre. C'est pourquoi link1 est dans plusieurs colonnes. Les link44 jusqu'à link100 sont des citations mais qui n'existent que dans book1 mais pas dans d'autres livres. Parce que les livres et les citations ont des mots comme des titres et afin de faire un graphique, il pourrait ne pas être utile, j'ai changé les titres de livres à des noeuds avec numérotation et des citations à des liens dont la numérotation. Références bibliographiques qui sont communs à plus d'un livre l'ont le même ID i.e.link1
dput(df)
structure(list(node1 = structure(c(1L, 13L, 24L, 35L, 46L, 57L,
68L, 79L, 90L, 2L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 14L,
15L, 16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 25L, 26L, 27L, 28L,
29L, 30L, 31L, 32L, 33L, 34L, 36L, 37L, 38L, 39L, 40L, 41L, 42L,
43L, 44L, 45L, 47L, 48L, 49L, 50L, 51L, 52L, 53L, 54L, 55L, 56L,
58L, 59L, 60L, 61L, 62L, 63L, 64L, 65L, 66L, 67L, 69L, 70L, 71L,
72L, 73L, 74L, 75L, 76L, 77L, 78L, 80L, 81L, 82L, 83L, 84L, 85L,
86L, 87L, 88L, 89L, 91L, 92L, 93L, 94L, 95L, 96L, 97L, 98L, 99L,
100L, 3L), .Label = c("link1", "link10", "link100", "link11",
"link12", "link13", "link14", "link15", "link16", "link17", "link18",
"link19", "link2", "link20", "link21", "link22", "link23", "link24",
"link25", "link26", "link27", "link28", "link29", "link3", "link30",
"link31", "link32", "link33", "link34", "link35", "link36", "link37",
"link38", "link39", "link4", "link40", "link41", "link42", "link43",
"link44", "link45", "link46", "link47", "link48", "link49", "link5",
"link50", "link51", "link52", "link53", "link54", "link55", "link56",
"link57", "link58", "link59", "link6", "link60", "link61", "link62",
"link63", "link64", "link65", "link66", "link67", "link68", "link69",
"link7", "link70", "link71", "link72", "link73", "link74", "link75",
"link76", "link77", "link78", "link79", "link8", "link80", "link81",
"link82", "link83", "link84", "link85", "link86", "link87", "link88",
"link89", "link9", "link90", "link91", "link92", "link93", "link94",
"link95", "link96", "link97", "link98", "link99"), class = "factor"),
node2 = structure(c(1L, 9L, 10L, 11L, 12L, 13L, 14L, 2L,
3L, 4L, 5L, 6L, 7L, 8L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA), .Label = c("link1", "link10", "link11", "link12",
"link13", "link14", "link15", "link16", "link4", "link5",
"link6", "link7", "link8", "link9"), class = "factor"), node3 = structure(c(1L,
2L, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), .Label = c("link1",
"link2"), class = "factor"), node4 = c(NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA), node5 = structure(c(1L, 12L, 19L, 20L,
21L, 22L, 23L, 24L, 25L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L,
10L, 11L, 13L, 14L, 15L, 16L, 17L, 18L, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), .Label = c("link1",
"link10", "link11", "link12", "link13", "link14", "link15",
"link16", "link17", "link18", "link19", "link2", "link20",
"link21", "link22", "link23", "link24", "link25", "link3",
"link4", "link5", "link6", "link7", "link8", "link9"), class = "factor"),
node6 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), node7 = c(NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), node8 = structure(c(1L,
12L, 23L, 34L, 39L, 40L, 41L, 42L, 43L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 10L, 11L, 13L, 14L, 15L, 16L, 17L, 18L, 19L,
20L, 21L, 22L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L,
33L, 35L, 36L, 37L, 38L, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA), .Label = c("link1", "link10", "link11",
"link12", "link13", "link14", "link15", "link16", "link17",
"link18", "link19", "link2", "link20", "link21", "link22",
"link23", "link24", "link25", "link26", "link27", "link28",
"link29", "link3", "link30", "link31", "link32", "link33",
"link34", "link35", "link36", "link37", "link38", "link39",
"link4", "link40", "link41", "link42", "link43", "link5",
"link6", "link7", "link8", "link9"), class = "factor"), node9 = structure(c(1L,
2L, 3L, 4L, 5L, 6L, 7L, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA), .Label = c("link1",
"link2", "link3", "link4", "link5", "link6", "link7"), class = "factor"),
node10 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)), .Names = c("node1",
"node2", "node3", "node4", "node5", "node6", "node7", "node8",
"node9", "node10"), class = "data.frame", row.names = c(NA, -100L
))
Dans le graphique chaque noeud représenté par un cercle dont le diamètre est proportionnel au nombre de fréquences. Les noms de colonnes sont les nœuds et les liens dans chaque ligne sont les éléments de connexion.
Comment est-il possible de donner aux nœuds de liaison une couleur jaune et les nœuds à 0 fréquence un nœud de rouge?
Vous ne semblez pas avoir d'arêtes dans votre graphique? – user20650
@ user20650 oui je n'ai aucun bord. – Sasak
ok, vous pouvez colorier les sommets en réglant 'V (g) $ color' (voir [this] (https://stackoverflow.com/questions/15999877/correctly-color-vertices-in-r-igraph)) et ajuster taille de vertex en définissant 'vertex.size' lors du traçage (voir [this] (https://stackoverflow.com/questions/12058556/ajustement-le-node-size-in-igraph-using-a-matrix)) – user20650