【问题标题】:Is there a way to set default vertical alignment of networkd3 Sankey?有没有办法设置networkd3 Sankey的默认垂直对齐方式?
【发布时间】:2020-08-12 16:55:25
【问题描述】:

我正在使用 R 中的 networkd3 包来构建 Sankey 网络。我尝试查看其他问题,但找不到相关问题。默认情况下,节点在视图窗口的顶部垂直对齐,如下所示:

如果可能的话,我想在底部自动对齐它们(避免点击和拖动节点),像这样:

networkD3::sankeyNetwork 函数似乎没有任何选项可以这样做,我想知道htmlwidgets::onRender 中是否有可用的 JS 选项。任何帮助将不胜感激!

生成上图第一张图的代码:

library(networkD3)

## Create links dataframe
links <- data.frame(
  from = c("A1", "A2", "A3", "A4", "A5"),
  to = c("B", "B", "B", "B", "B"),
  count = c(10, 10, 5, 5, 10)
)

## 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
sankeyNetwork(
  Links = links,
  Nodes = nodes,
  Source = "source",
  Target = "target",
  Value = "count",
  NodeID = "name",
  iterations = 0, 
  sinksRight = FALSE
)

【问题讨论】:

    标签: javascript r d3.js htmlwidgets networkd3


    【解决方案1】:

    如果不重写/覆盖 JavaScript 中的 sankey 生成器函数,我无法想象一种方法,在这种情况下,在 JavaScript 中自己创建 sankey 比使用 networkD3 更有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 2011-05-26
      相关资源
      最近更新 更多