生物信息学分析

网络-visNetwork包visOptions设置

2020-09-24  本文已影响0人  JeremyL

#visOptions用法

visOptions(
  graph,
  width = NULL,
  height = NULL,
  highlightNearest = FALSE,
  nodesIdSelection = FALSE,
  selectedBy = NULL,
  collapse = FALSE,
  autoResize = NULL,
  clickToUse = NULL,
  manipulation = NULL
)

#参数

highlightNearest:
只是一个布尔值,或者一个命名列表;点击某个节点时,突出该节点周围的连接节点

nodesIdSelection:
只是一个布尔值,或者一个命名列表。默认为false。添加一个id节点选择,创建一个HTML select元素

collapse
一个布尔值,或者一个命名列表。使用双击删除节点。

selectedBy
字符或命名列表。根据节点data.frame的列添加多个选择,创建一个HTML选择元素。

#示例

nodes <- data.frame(id = 1:15, label = paste("Label", 1:15),
 group = sample(LETTERS[1:3], 15, replace = TRUE))

edges <- data.frame(from = trunc(runif(15)*(15-1))+1,
 to = trunc(runif(15)*(15-1))+1)
 
###################  
# highlight nearest
###################

visNetwork(nodes, edges) %>% visOptions(highlightNearest = TRUE)
visNetwork(nodes, edges) %>% visOptions(highlightNearest = list(enabled = TRUE, degree = 2))

# also when hover a node ?
visNetwork(nodes, edges) %>% visOptions(highlightNearest = list(enabled = TRUE, hover = TRUE))

# don't show nodes/edges
visNetwork(nodes, edges) %>% visOptions(highlightNearest = list(enabled = TRUE, 
 hover = TRUE, hideColor = 'rgba(200,200,200,0)'))

# Using hierarchical information
nodes = data.frame(id = 1:6, level = c(1, 2, 3, 3, 4, 2))
edges = data.frame(from = c(1, 2, 2, 4, 6), to = c(2, 3, 4, 5, 4))

visNetwork(nodes, edges) %>% visHierarchicalLayout() %>% visEdges(arrows = "to") %>% 
 visOptions(highlightNearest = list(enabled = TRUE, algorithm = "hierarchical"))
 
visNetwork(nodes, edges) %>% visHierarchicalLayout() %>% visEdges(arrows = "to") %>% 
 visOptions(highlightNearest = list(enabled = TRUE, algorithm = "hierarchical", 
   degree = list(from = 0, to = 2)))
   
##########################
# nodesIdSelection
##########################
 
visNetwork(nodes, edges) %>% 
 visOptions(highlightNearest = TRUE, nodesIdSelection = TRUE)

# add a default selected node ?
visNetwork(nodes, edges) %>% 
 visOptions(highlightNearest = TRUE, 
 nodesIdSelection = list(enabled = TRUE, selected = "1"))
 
# subset on id values & don't use labels ?
visNetwork(nodes, edges) %>% 
 visOptions(highlightNearest = TRUE, 
 nodesIdSelection = list(enabled = TRUE, 
   selected = "2", values = c(2:10), useLabels = FALSE))
 
# some style
visNetwork(nodes, edges) %>% 
 visOptions(highlightNearest = TRUE, 
 nodesIdSelection = list(enabled = TRUE, style = 'width: 200px; height: 26px;
   background: #f8f8f8;
   color: darkblue;
   border:none;
   outline:none;'))   
 
##########################
# collapse
##########################
 
nodes <- data.frame(id = 1:15, label = paste("Label", 1:15),
 group = sample(LETTERS[1:3], 15, replace = TRUE))

edges <- data.frame(from = trunc(runif(15)*(15-1))+1,
 to = trunc(runif(15)*(15-1))+1)
 
# keeping all parent node attributes  
visNetwork(nodes, edges) %>% visEdges(arrows = "to") %>%
 visOptions(collapse = TRUE)

# setting some properties  
visNetwork(nodes, edges) %>% visEdges(arrows = "to") %>%
 visOptions(collapse = list(enabled = TRUE, clusterOptions = list(shape = "square"))) 
   
# enable / disable open cluster (proxy only) : 
# visEvents(type = "off", doubleClick = "networkOpenCluster")
# visEvents(type = "on", doubleClick = "networkOpenCluster")  
 
##########################
# selectedBy
##########################
nodes <- data.frame(id = 1:15, label = paste("Label", 1:15),
 group = sample(LETTERS[1:3], 15, replace = TRUE))

edges <- data.frame(from = trunc(runif(15)*(15-1))+1,
 to = trunc(runif(15)*(15-1))+1)
 
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = "group")
 
# add a default value ?
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = list(variable = "group", selected = "A"))

# subset on values ?
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = list(variable = "group", 
   selected = "C",
   values = c("A", "C")))
 
# highlight also
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = list(variable = "group", 
   highlight = TRUE), highlightNearest = TRUE) 
     
# add some style
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = list(variable = "group", style = 'width: 200px; height: 26px;
   background: #f8f8f8;
   color: darkblue;
   border:none;
   outline:none;'))
     
# can also be on new column
nodes$sample <- sample(c("sample 1", "sample 2"), nrow(nodes), replace = TRUE)
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = "sample")

# and with multiple groups ?
nodes$group <- sample(c("group 1", "group 2", "group 1, group 2, group 3"), 
 nrow(nodes), replace = TRUE)
 
visNetwork(nodes, edges) %>% 
 visOptions(selectedBy = list(variable = "group", multiple = TRUE))
 
##########################
# manipulation
##########################
 
visNetwork(nodes, edges) %>% 
 visOptions(manipulation = TRUE)

visNetwork(nodes, edges) %>% 
 visOptions(manipulation = list(enabled = TRUE, addNode = FALSE, addEdge = FALSE))

visNetwork(nodes, edges) %>% 
 visOptions(manipulation = list(enabled = TRUE, deleteNode = FALSE, deleteEdge = FALSE))

visNetwork(nodes, edges) %>% 
 visOptions(manipulation = list(enabled = TRUE, editNode = FALSE, editEdge = FALSE))

visNetwork(nodes, edges)  %>% 
 visOptions(manipulation = list(enabled = TRUE, 
                                editEdge = htmlwidgets::JS("function(data, callback) {
                                                           console.info('edit edge')
                                                           }")
                                    )
                                )
##########################
# collapse
##########################
visNetwork(nodes, edges) %>% 
 visEdges(arrows = "to") %>% 
 visOptions(collapse = list(enabled = TRUE, 
   clusterOptions = list(shape = "square")))

系列文章:
R语言进行网络分析的基础包 igraph
networkD3 绘制动态网络
网络-visNetwork包绘制炫酷的动态网络图
网络-调用R包构建交互式网络可视化的Shiny App

上一篇 下一篇

猜你喜欢

热点阅读