I simulated some data and created a graph network in R using visnetwork:
library(igraph) library(dplyr) library(visNetwork) #create file from which to sample from x5 <- sample(1:100, 1100, replace=T) #convert to data frame x5 = as.data.frame(x5) #create first file (take a random sample from the created file) a = sample_n(x5, 1000) #create second file (take a random sample from the created file) b = sample_n(x5, 1000) #combine c = cbind(a,b) #create dataframe c = data.frame(c) #rename column names colnames(c) <- c("a","b") #create graph graph <- graph.data.frame(c, directed=F) graph <- simplify(graph) plot(graph) fc <- fastgreedy.community(graph) V(graph)$community <- fc$membership library(visNetwork) nodes <- data.frame(id = V(graph)$name, title = V(graph)$name, group = V(graph)$community) nodes <- nodes[order(nodes$id, decreasing = F),] edges <- get.data.frame(graph, what="edges")[1:2] #visnet graph visNetwork(nodes, edges) %>% visIgraphLayout(layout = "layout_with_fr") %>% visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE)
Right now, the graph only displays node information when you click on it. Suppose if each node had observed properties in the "original file". E.g.
#add some information corresponding to the original data other_damages_in_dollars <- rnorm(1000,104,9) location <- c("canada","usa") location <- sample(location, 1000, replace=TRUE, prob=c(0.3, 0.7)) type_of_house <- c("single","townhome", "rental" ) type_of_house<- sample(type_of_house , 1000, replace=TRUE, prob=c(0.5, 0.3, 0.2)) #heres how the original data would have looked like original_data = data.frame(a,b, other_damages_in_dollars, location, type_of_house)
Is there a way to add this information when you click on each node?
#visnet graph - is it possible to use the ' ``` operator to add these properties? visNetwork(nodes, edges) %>% visIgraphLayout(layout = "layout_with_fr") %>% %>% visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE)visEvents(s