r - R Shiny visNetwork_2.1.0 中的错误与 visHierarchicalLayout 产生难以辨认的可视化?
问题描述
我正在更新一个闪亮的应用程序,并且得到了与过去截然不同的可视化输出。(为冗长的数据生成道歉 - 自动生成的集合不会复制问题。)以下代码R 4.1.1
运行visNetwork_2.1.0
:
library(shiny)
library(visNetwork)
# generate data
nodesDf <- data.frame(id=as.character(c(1,3,4,6,8,9,13,15,16,20,21,23,24,25,27,
28,29,30,33,35,36,37,39,40,41,44,45,46,
48,50,51,53,57,58,60,61,62,65)),
label=as.character(c(1,3,4,6,8,9,13,15,16,20,21,23,24,25,27,
28,29,30,33,35,36,37,39,40,41,44,45,46,
48,50,51,53,57,58,60,61,62,65)))
edgesDf <- data.frame(from=as.character(c(6,6,6,8,8,8,8,8,8,9,20,20,20,36,36,36,
36,36,36,36,36,36,36,36,36,36,36,36,36,
36,36,44,44,44,44,44,44,48,50,50,50,50,
50,50,50,50,50,50,50,50,50,50,50,50,50,
50,50,50,50,50,50,50,50,50,50,50,50,51,
51,51,51,51,58,62,1,8,25,1,25,36,44,1,
28,37,44,62,1,8,25,1,1,15,25,36,45,1,
28,60,1,8,25,44,36,1,1,6,28,62,25,1,1,
8,1,25,28,36,50,62,1,8,13,28,36,37,44,
46,1,20,44,57,1,8,25,29,1,25,44,1,8,44,
8,35)),
to=as.character(c(3,20,53,16,20,30,46,51,61,65,3,39,53,1,
3,6,9,15,16,21,27,29,30,33,35,37,41,51,
58,60,65,23,24,28,41,46,57,9,3,4,6,9,13,
15,16,20,21,23,24,27,28,29,30,35,39,40,
41,45,48,51,53,57,58,60,61,62,65,3,27,30,
37,53,6,3,3,3,3,4,4,4,4,6,6,6,6,6,9,9,9,
15,20,20,20,20,20,23,23,23,27,27,27,27,
28,35,37,37,37,37,39,40,45,45,46,46,46,
46,46,46,48,48,48,48,48,48,48,50,51,51,
51,51,53,53,53,53,58,58,58,62,62,62,65,65)))
# ui
ui <- fluidPage(
visNetworkOutput("netPlot")
)
# server
server <- function(input, output){
output$netPlot <- renderVisNetwork({
visNetwork(nodesDf, edgesDf) %>%
visEdges(arrows = list(to = list(enabled=TRUE, scaleFactor = 1.5))) %>%
visHierarchicalLayout(enabled=TRUE, direction="UD", sortMethod="directed")
})
}
shinyApp(ui=ui, server=server)
生成以下输出:
相同的数据visNetwork_2.0.7
(带有一些其他颜色参数,但代码基本相同;我没有记录R
版本)生成以下输出:
除了从默认值 150 降低之外,其他visHierarchicalLayout
参数似乎都没有改变任何东西levelSeparation
——这使两个主要级别更接近,但它们中的子级别彼此重叠,仍然一团糟。
我有一个运行不同数据的不同应用程序visNetwork_2.0.9
,它表现得很好,但也显示了与 v2.1.0 相同的问题,所以我怀疑这个问题出现在 v2.0.9 和 v2.1.0 之间。我没有做任何不同的事情,也找不到任何说明参数需要不同类型处理的文档,所以这感觉像是一个错误。
解决方案
推荐阅读
- netsuite - 如何在 SuiteScript 中获取和设置交易送货地址的送货电话?
- html - 如何让我的页脚在 CSS 中保持在页面底部而不重叠
- mysql - MySQL查询多个删除值
- qt - 如何以特定方式在 QMainWindow 上定位多个 QDockWidget
- pandas - 使用其他参数对列中的值执行函数,然后结转
- amazon-web-services - AWS - k8s - 入口负载均衡器
- linux - 如何测试您的 USB 设备堆栈?
- c++ - 带有“enum”模板专业化问题的“enable_if”
- java - 像 REPL 控制台一样执行/评估代码的 Java 库
- java - 如何将数组作为参数传递给 Java 图形函数?