【发布时间】:2020-08-10 18:36:41
【问题描述】:
我在一个 Shiny 应用程序内有一个来自 networkd3 渲染的 Sankey 网络,显示一年内的转换,用户可以使用各种选项来过滤数据。我遇到了链接没有与节点完全连接并运行到其他链接的问题,特别是当用户选择一小部分组时,导致绘图水平方向比垂直方向长(即,每年显示的年份多于组- 见下面的例子)。
我在 Stack Overflow 上找不到修复程序。我相信问题可能出在底层的 Javascript 中,所以我已经超出了我的深度。任何帮助将不胜感激。谢谢!代表如下。
## Create links dataframe
# Note that the 0 count links are for displaying nodes in the proper year
links <- data.frame(
from = c(
"A 2015", "A 2016", "A 2017", "A 2018", "A 2019",
"A 2015", "A 2016", "A 2017", "A 2018"
),
to = c(
"B 2016", "B 2017", "B 2018", "B 2019", "B 2020",
"A 2016", "A 2017", "A 2018", "A 2019"
),
count = c(48, 36, 31, 46, 24, 0, 0, 0, 0)
)
## Create node dataframe
nodes <- data.frame(
name = unique(
c(
as.character(links$from),
as.character(links$to)
)
)
)
## Add node indices to link data (zero-indexed)
links$source = match(links$from, nodes$name)-1
links$target = match(links$to, nodes$name)-1
## Render Sankey
library(networkD3)
sankeyNetwork(
Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "count",
NodeID = "name",
iterations = 0,
sinksRight = FALSE
)
【问题讨论】:
标签: javascript r d3.js htmlwidgets networkd3