我想并排放置两个 visNetwork 图以进行视觉比较。使用带有 par() 或 layout() 的 igraph 可以进行多图定位。有没有办法为 visNetwork 做到这一点?解决方法/问题(包括 RShiny 等)是可以接受的答案 - 提供并排 visNetwork 显示的任何方法。请注意,ID 号等重叠,因此将两个网络放入同一个图中将需要大量数据操作,而我希望避免这种操作。
这是我正在尝试做的事情的示例。
library(visNetwork)
# Network 1
nodes1 <- data.frame(id = 1:3)
edges1 <- data.frame(from = c(1,1), to = c(2,3))
# Network 2
nodes2 <- data.frame(id = 1:4)
edges2 <- data.frame(from = c(1,1,2,2), to = c(2,3,4,3))
# Plot both networks side-by-side?
par(mfrow=c(1,2)) # Want something like this (does not work)
visNetwork(nodes1, edges1) %>% visEdges(arrows = 'from')
visNetwork(nodes2, edges2) %>% visEdges(arrows = 'from')
干杯, 蒂姆
请您参考如下方法:
如果给予完全的自由,我会选择 flexdashboard
。这是一个方便的 rmarkdown
模板,用于创建交互式仪表板,从简单快速的仪表板到精心设计的复杂仪表板。
install.packages('flexdashboard')
然后从模板 'Flex Dashboard'
创建一个新的 Rmd
,或者将以下内容复制到一个新的 .Rmd
文件中
---
title: "DASHBOARD"
output:
flexdashboard::flex_dashboard:
orientation: rows
---
```{r, echo=FALSE}
library(visNetwork)
# Network 1
nodes1 <- data.frame(id = 1:3)
edges1 <- data.frame(from = c(1,1), to = c(2,3))
# Network 2
nodes2 <- data.frame(id = 1:4)
edges2 <- data.frame(from = c(1,1,2,2), to = c(2,3,4,3))
```
Row
-------------------------------------
### Chart 1
```{r}
visNetwork(nodes1, edges1) %>% visEdges(arrows = 'from')
```
### Chart 2
```{r}
visNetwork(nodes2, edges2) %>% visEdges(arrows = 'from')
```
请注意,由于布局是响应式的,Rstudio 查看器 Pane 中的默认 View 垂直堆叠图表,但扩展 Pane 或在外部浏览器中打开它会并排显示它们。