【问题标题】:XPlot offline usageXPlot 离线使用
【发布时间】:2019-12-09 10:27:46
【问题描述】:

现在,如果我使用此代码:

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");

File.WriteAllText("C:\\Users\\picolino\\Documents\\chart.html", chart.GetHtml());

它产生了一个通过网络直接引用ploty-latest.min.js的html文件:

<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>

那么我可以使用 XPlot 库来导出交互式(html+js)或至少静态(图像)图表以供离线使用吗?

【问题讨论】:

    标签: c# plot charts offline


    【解决方案1】:

    这里的库的 github 页面上已经有一个功能请求:https://github.com/fslaborg/XPlot/issues/43

    如果您想将其保存为图像或 pdf,则可以使用将 html 转换为这些文件格式的库。然而,这将删除情节的动态特征。

    另一种解决方案是在本地机器上获取 javascript:

    您可以将plotly-latest.min.js 文件下载到本地输出文件夹并替换为:
    &lt;script src="https://cdn.plot.ly/plotly-latest.min.js"&gt;&lt;/script&gt;
    用这个:
    &lt;script src="/plotly-latest.min.js"&gt;&lt;/script&gt;

    您可以通过在 c# 中打开文件并以编程方式执行字符串替换来替换它。 但是,这意味着您不会获得这些图表的最新版本和错误修复

    【讨论】:

    • 感谢 Joost K 的回复。但我需要知道,我是否有可能以更简单的方式进行这种导出,最好只使用 XPlot 工具。也许不是交互式导出,而只是静态(图像)。
    • 我更新了我的答案,似乎 XPlot 中不支持它
    • 明确回答了问题。欣赏它。谢谢你,@Joost K。
    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 2021-09-08
    • 2011-06-17
    • 2012-07-11
    • 2015-02-03
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多