在 F# 中使用 xplot/plotly 的连续误差带

Posted

技术标签:

【中文标题】在 F# 中使用 xplot/plotly 的连续误差带【英文标题】:continuous error bands with xplot/plotly, in F# 【发布时间】:2021-08-09 05:44:12 【问题描述】:

我正在尝试制作这样的图表:

如页面中所述:https://plotly.com/python/continuous-error-bars/

相关python代码为:

go.Scatter(
    x=x+x[::-1], # x, then x reversed
    y=y_upper+y_lower[::-1], # upper, then lower reversed
    fill='toself'
)

但我不太确定如何使 F# 等效于:

y=y_upper+y_lower[::-1]

使用 xplot/plotly

我怎样才能画出这样的图表?

【问题讨论】:

【参考方案1】:

实际上,您可以使用 Plotly.NET!

这是一个完整的 sn-p,它将在 .NET Interactive 中重现图表。

#r "nuget: Plotly.NET.Interactive, 2.0.0-beta9"

open Plotly.NET

let x = [1; 2; 3; 4; 5; 6; 7; 8; 9; 10]
let y = [1; 2; 7; 4; 5; 6; 7; 8; 9; 10]
let y_upper = [2; 3; 8; 5; 6; 7; 8; 9; 10; 11]
let y_lower = [0; 1; 5; 3; 4; 5; 6; 7; 8; 9]

Chart.Range(
    x,
    y,
    y_upper,
    y_lower,
    StyleParam.Mode.Lines,
    Color="rgb(0,100,80)",
    RangeColor="rgba(0,100,80,0.2)")

文档中的渲染出于某种原因拉伸了 x 轴,尽管我在跟踪本身中看不到这一点。

请参阅range charts 了解更多信息。

至于y=y_upper+y_lower[::-1]位,这只是F#中的一个列表追加,所以它是:

y_upper @ (y_upper |> List.rev)

但至少在最初,如果您使用 Plotly.NET,这似乎是不必要的。

【讨论】:

哦,好的,所以上和下的 y 数据被附加,下一个反转。我知道了!同时,我也想出了一个替代的解决方案:画底部,然后用 fill = "tonexty" 画顶部,这似乎也有效。

以上是关于在 F# 中使用 xplot/plotly 的连续误差带的主要内容,如果未能解决你的问题,请参考以下文章

用 Xplot 绘制 deedle 数据框的数据

在VS Code中执行SQL查询,是怎样一种体验?

高等数学,函数连续性问题

数学分析函数连续性部分问题设f在[a,正无穷)上满足lipschitz条件(F...

数学分析(三) 关于x连续,关于y满足Lipschitz条件

连续---1.4