You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取networkD3桑基图中目标节点的排序结果?

提取networkD3桑基图的目标节点自动排序顺序

可以提取桑基图自动布局后目标节点的排序顺序,核心是从sankeyNetwork生成的对象中获取布局计算后的节点坐标数据,具体步骤如下:

  1. 获取节点布局数据
    sankeyNetwork返回的对象(比如你的代码里的p)包含了布局计算后的节点信息,存储在p$x$nodes中,里面包含每个节点的x(层级)、y(垂直位置)、name等字段。

  2. 筛选目标节点
    根据你设置的sinksRight=FALSE,目标节点会位于最左侧的层级(x=0);如果是默认的sinksRight=TRUE,目标节点则在最右侧层级(x为最大值)。通过x坐标筛选出目标节点。

  3. 按垂直位置排序
    桑基图自动布局时,y值越小的节点位置越靠上,因此按y升序排序就能得到从上到下的节点顺序。

针对你的示例代码的具体实现

# 从桑基图对象中提取节点布局数据
node_layout <- p$x$nodes

# 筛选目标节点(sinksRight=FALSE时,目标节点在x=0的层级)
target_nodes <- node_layout[node_layout$x == 0, ]

# 按y坐标升序排序,得到自动布局的节点顺序
target_node_order <- target_nodes[order(target_nodes$y), "name"]

# 输出结果
print(target_node_order)

运行这段代码后,target_node_order就是自动布局后目标节点从上到下的排序顺序,你可以直接把这个结果作为其他绘图的输入。

内容的提问来源于stack exchange,提问作者C--C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:45:11