Tim*_*Tim 3 layout r graph igraph shiny
我想将两个visNetwork图并排放置以进行视觉比较.使用带有par()或layout()的igraph可以进行多绘图定位.有没有办法为visNetwork做到这一点?解决方案/ kludges(包括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')
Run Code Online (Sandbox Code Playgroud)
干杯,蒂姆
如果给予完全的自由,我会去flexdashboard.这是一个方便的rmarkdown模板,可以创建交互式仪表板,从简单快速到精心复杂.
install.packages('flexdashboard')
Run Code Online (Sandbox Code Playgroud)
然后,Rmd从模板创建一个新的'Flex Dashboard',或将以下内容复制到一个新.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')
```
Run Code Online (Sandbox Code Playgroud)
请注意,由于布局是响应式的,Rstudio中的"查看器"窗格中的默认视图会垂直堆叠图形,但是扩展窗格或在外部浏览器中打开它会并排显示它们.