如何将手动编辑后的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
相关产品推荐
相关产品推荐

