I have this dataset:
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))
and I would like the nodes which have value equals to 0 have red color and the nodes with value equals or greater than one have red color and their circle be bigger depending on how large the value is.
Is it possible to make it using igraph?
Dataset with edges. Input dataframe:
EDIT from comment
I made this dataset based on books and citations. Books = nodes and citations = link. Every book is unique and has citations. The citation could be common to more than one books. That's why i.e. link1 is in multiple columns. The link44 until link100 are citations but which exist only in book1 but not in other books. Because books and citations have words as titles and in order to make a graph it could be not helpful I changed the book titles to nodes with numbering and citations to links which numbering. Citations which are common to more than one book the have the same 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
))
In the graph every node depicted by a circle with a diameter proportional to the number of frequency. The column names are the nodes and the links in every row are the connecting elements.
How is it possible to give to the link nodes a color of yellow and the nodes with 0 frequency a node of red?