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

Plotly生成Sankey Plot无报错但空白问题排查求助

Plotly桑基图空白问题排查与解决

问题原因

Plotly生成桑基图时,link参数的source和target必须传入对应节点列表的整数索引,而非节点名称字符串。你当前代码中直接使用了data_long$source和data_long$target(均为字符串),Plotly无法识别这些字符串对应的节点位置,因此图表显示空白。

解决步骤

1. 解除数据集分组

你的data_long是分组数据框,先解除分组避免后续操作异常:

data_long <- data_long %>% ungroup()

2. 修改绘图代码的link参数

将source和target替换为数据集中已有的IDsource和IDtarget(这两列已经是对应nodes的整数索引),同时移除无关的valuesuffix = "TWh"(你的数据不属于该单位):

fig <- plot_ly(
    type = "sankey",
    domain = list(
      x =  c(0,1),
      y =  c(0,1)
    ),
    orientation = "h",
    valueformat = ".0f",

    node = list(
      label = nodes$name,
      pad = 15,
      thickness = 15,
      line = list(
        color = "black",
        width = 0.5
      )
    ),

    link = list(
      source = data_long$IDsource,
      target = data_long$IDtarget,
      value =  data_long$value 
    )
  ) 
fig <- fig %>% layout(
    title = "aesoc",
    font = list(
      size = 10
    ),
    xaxis = list(showgrid = F, zeroline = F),
    yaxis = list(showgrid = F, zeroline = F)
)

fig

验证说明

nodes数据框的行索引(从0开始)正好与IDsource、IDtarget的数值一一对应,比如nodes[1,1]是"Placebo",对应IDsource中的0,完全匹配Plotly桑基图的参数要求,修改后即可正常生成图表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:15:54