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

关于XPlot库离线导出交互式/静态图表的技术问询

没问题!XPlot完全支持导出离线可用的交互式HTML(包含本地Plotly JS文件),以及生成静态图片。咱们分两种场景给你具体的实现方案:

一、导出离线交互式HTML(无需网络即可交互)

默认情况下XPlot生成的HTML会引用CDN上的Plotly JS,要实现离线使用,只需要把Plotly的JS文件下载到本地,然后修改代码指定本地引用路径即可:

  1. 先下载Plotly的离线JavaScript文件(比如plotly.min.js),放到你生成HTML的同目录(或者任意本地路径)
  2. 修改你的代码,添加WithPlotlyJsUri方法指定本地JS文件的相对/绝对路径:
var chart = Chart.Plot(new[] { 
    new Graph.Scatter() { 
        x = data.Select(o => o.X), 
        y = data.Select(o => o.Y), 
        name = "Loss", 
        mode = "lines" 
    } 
});
chart.WithXTitle("Xs");
chart.WithYTitle("Ys");
chart.WithTitle("Chart title");
// 指定本地Plotly JS文件路径(这里假设和HTML同目录)
chart.WithPlotlyJsUri("plotly.min.js");
// 导出HTML文件
File.WriteAllText("C:\\Users\\picolino\\Documents\\chart.html", chart.GetHtml());

这样生成的HTML就会引用本地的JS文件,打开时不需要网络也能正常交互。

二、导出静态图片(PNG/JPG等)

如果只需要静态图片,XPlot可以通过XPlot.Plotly.ImageExport扩展包实现离线生成:

  1. 先安装对应的NuGet包:XPlot.Plotly.ImageExport(可以通过NuGet包管理器或者命令行安装)
  2. 使用ToImage方法直接导出图片:
var chart = Chart.Plot(new[] { 
    new Graph.Scatter() { 
        x = data.Select(o => o.X), 
        y = data.Select(o => o.Y), 
        name = "Loss", 
        mode = "lines" 
    } 
});
chart.WithXTitle("Xs");
chart.WithYTitle("Ys");
chart.WithTitle("Chart title");
// 导出为PNG格式图片,写入指定路径
var imageBytes = chart.ToImage(ImageFormat.Png);
File.WriteAllBytes("C:\\Users\\picolino\\Documents\\chart.png", imageBytes);

这个方式完全离线,依赖包会内置渲染所需的组件,生成的图片可以直接查看或嵌入其他文档。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:55:33