我制作了以下 25 个网络图(为了简单起见,所有这些图都是复制品 - 实际上,它们都会有所不同):
library(tidyverse)
library(igraph)
set.seed(123)
n=15
data = data.frame(tibble(d = paste(1:n)))
relations = data.frame(tibble(
from = sample(data$d),
to = lead(from, default=from[1]),
))
data$name = c("new york", "chicago", "los angeles", "orlando", "houston", "seattle", "washington", "baltimore", "atlanta", "las vegas", "oakland", "phoenix", "kansas", "miami", "newark" )
graph = graph_from_data_frame(relations, directed=T, vertices = data)
V(graph)$color <- ifelse(data$d == relations$from[1], "red", "orange")
plot(graph, layout=layout.circle, edge.arrow.size = 0.2, main = "my_graph")
library(visNetwork)
a = visIgraph(graph)
m_1 = 1
m_2 = 23.6
a = toVisNetworkData(graph) %>%
c(., list(main = paste0("Trip ", m_1, " : "), submain = paste0 (m_2, "KM") )) %>%
do.call(visNetwork, .) %>%
visIgraphLayout(layout = "layout_in_circle") %>%
visEdges(arrows = 'to')
y = x = w = v = u = t = s = r = q = p = o = n = m = l = k = j = i = h = g = f = e = d = c = b = a
我想将它们“平铺”为 5 x 5 :因为这些是交互式 html 图 - 我使用了以下命令:
library(manipulateWidget)
library(htmltools)
ff = combineWidgets(y , x , w , v , u , t , s , r , q , p , o , n , m , l , k , j , i , h , g , f , e , d , c , b , a)
htmltools::save_html(html = ff, file = "widgets.html")
我找到了如何为每个单独的图表添加缩放选项:
a = toVisNetworkData(graph) %>%
c(., list(main = paste0("Trip ", m_1, " : "), submain = paste0 (m_2, "KM") )) %>%
do.call(visNetwork, .) %>%
visIgraphLayout(layout = "layout_in_circle") %>%
visInteraction(navigationButtons = TRUE) %>%
visEdges(arrows = 'to')
y = x = w = v = u = t = s = r = q = p = o = n = m = l = k = j = i = h = g = f = e = d = c = b = a
ff = combineWidgets(y , x , w , v , u , t , s , r , q , p , o , n , m , l , k , j , i , h , g , f , e , d , c , b , a)
htmltools::save_html(html = ff, file = "widgets.html")
[![在此处输入图像描述][1]][1]
但现在“缩放”选项和“标题”已经“混乱”了所有图表!
我认为最好将所有这些图表“堆叠”在一起并将每个图表保存为“组类型” - 然后根据需要隐藏/取消隐藏:
visNetwork(data, relations) %>%
visOptions(selectedBy = "group")
-
我们能否将所有 25 个图表放在一页上,然后“缩放”每个单独的图表以更好地查看它(例如,在屏幕一角只有一组适用于所有图表的缩放/导航按钮)?
-
有没有办法阻止标题与图表重叠?
-
我们能否将所有 25 个图表放在一页上,然后通过“选中”选项菜单按钮来“隐藏”各个图表? (就像本页的最后一个例子:https://datastorm-open.github.io/visNetwork/options.html https://datastorm-open.github.io/visNetwork/options.html)
以下是我针对这个问题想到的可能的解决方案:
我知道这种选择方式(“选项 2”)可以使用以下代码进行:
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")
但我不确定如何针对一组预先存在的“visNetwork”图调整上述代码。例如,假设我已经有“visNetwork”图“a、b、c、d、e” - 我如何“将它们堆叠在一起”并使用“选择菜单”“随机播放它们”,就像在上面的代码?
[![在此处输入图像描述][4]][4]
有人可以告诉我一种使用选项 1 和选项 2 解决这个混乱问题的方法吗?
谢谢你!