我的 R/Shiny 应用程序中有一个 networkd3 Sankey 图,它从 MySQL 连接中提取数据。我试图找到一种“深入”图表的方法 - 单击一个节点,这将返回该节点的名称。然后我将使用它来将另一个查询传递给数据库,该数据库将在应用程序中填充一个表。
这是我所拥有的 -
san <- sankeyNetwork(Links = sanData, Nodes = nodes, Source = "source",
Target = "target", Value = "value")
Run Code Online (Sandbox Code Playgroud)
这绘制了运行良好的图表。
这是我迄今为止尝试过的 -
使用 R package htmlwidgets,并在我的桑基图上使用onRender运行以下 JS 脚本。
JS 脚本的占位符:
clickFun <- 'd3.selectAll(".link").on("click",function(d) {alert(d.value);})'
Run Code Online (Sandbox Code Playgroud)
在我的桑基输出中:
onRender(san, clickFun)
这会将链接的值作为警报返回。我尝试按照其他一些示例的建议使用".node"和d.data.name,但我永远无法使其正常工作并且没有弹出警报。
以下是我的问题:
1. 如何在单击鼠标时从桑基图中检索节点的名称?
2. 假设我已经实现了上述目标,如何在闪亮的应用程序中使用我的 JS 脚本返回的值?我会将alert()位更改为return(),但我不知道如何在我的服务器应用程序中使用它。