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

如何将手动编辑后的htmlwidget桑基图导出为SVG等高质量矢量格式

如何将手动调整后的sankeyD3桑基图html导出为高质量矢量格式插入Word

我日常在R环境中使用sankeyD3包绘制桑基图(Sankey-diagrams)。该包是当前桑基图绘制工具中可选功能、配置参数最丰富的选项,但暂不支持直接设置节点在Y轴上的排列顺序(虽已有相关issue尝试修复该功能)。

目前我采用手动调整节点位置的临时方案,操作流程如下:

  • 创建图表时设置dragY = TRUE参数,开启Y轴拖拽权限
  • 调用htmlwidgets::saveWidget()函数将生成的图表导出为本地html文件
  • 打开导出的html文件,手动拖拽节点调整到目标排列位置

可复现示例(reprex)代码

# 首次使用需先安装包
# remotes::install_github("fbreitwieser/sankeyD3")
links <- data.frame(
  source = c(0, 0, 0, 1, 2, 3, 4, 4),
  target = c(1, 2, 3, 4, 4, 4, 5, 6),
  value = c(2, 3, 4, 2, 3 , 4, 4, 5)
)

nodes <- data.frame(
  label = c("A1", "B1", "B3", "B2", "C1", "D1", "D2"),
  yOrder = c(1, 1, 3, 2, 1, 1, 2)
)

out <- sankeyD3::sankeyNetwork(
  Links = links,
  Nodes = nodes,
  Source = "source",
  Target = "target",
  Value  = "value",
  NodeID = "label",
  fontFamily = "Arial",
  fontSize = 12,
  numberFormat = ",.1s",
  height = 500,
  width = 700,
  dragY = TRUE)

htmlwidgets::saveWidget(out,
                        file = here::here("out.html"),
                        selfcontained = TRUE)

下方截图左侧为导出的初始html文件效果,右侧为手动重排节点后的效果:
桑基图初始效果与手动调整后效果对比

我需要将编辑完成后的图表以最优画质插入Word文档,请问如何将调整完毕的html文件导出为SVG格式,或是其他等效的高质量矢量格式?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:39:42