如何在 F# 中使用 xplot/plotly 跳过图形块?

Posted

技术标签:

【中文标题】如何在 F# 中使用 xplot/plotly 跳过图形块?【英文标题】:how to skip graph chunks with xplot/plotly, in F#? 【发布时间】:2021-08-10 03:10:45 【问题描述】:

当我使用 xplot 绘制图表时,我会提供如下值列表:

Scatter(x = [1;2;3;4], y = [10;20;30;40])

但是如果我想跳过图表的某些部分怎么办?

我该怎么做:

Scatter(x = [1;2;3;4], y = [10;20;nan;40])

哪条线会在 nan 所在的地方有间隙?

【问题讨论】:

Can Scatter 可以与选项一起使用,例如Scatter(x = [Some 1;Some 2; Some 3;Some 4], y = [Some 10;Some 20; None; Some 40])? @MartinFreedman,不,它没有;会很好的 【参考方案1】:

我认为它在 XPlot 中的工作方式完全相同。试试这个:

Scatter(x = [1.0;2.0;3.0;4.0], y = [10.0;20.0;nan;40.0])
    |> Chart.Plot
    |> Chart.Show

我们也可以使用 Martin 的想法来使这项工作适用于任何数字数据类型:

let toFloat = function
    | Some value -> float value
    | None -> nan

let scatter x y =
    let toFloats = Seq.map toFloat
    Scatter(x = toFloats x, y = toFloats y)

scatter
    [Some 1m; Some 2m; Some 3m; Some 4m]
    [Some 10m; Some 20m; None; Some 40m]
    |> Chart.Plot
    |> Chart.Show

【讨论】:

这不适用于财务数据,因为它们是十进制格式并且没有 nan 等价物 好的,很容易制作一个小包装函数来处理这个问题。我会更新我的答案。 是的,我现在有类似的东西(我从 C# 库中获取数据,所以我有可为空的类型,但概念是相同的)。我希望有一种方法可以在列表中传递 null 或某种分隔符以跳过某些值

以上是关于如何在 F# 中使用 xplot/plotly 跳过图形块?的主要内容,如果未能解决你的问题,请参考以下文章

用 Xplot 绘制 deedle 数据框的数据

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

如何使用滞后功能跳过一行? PostgreSQL 9.3

跳台阶问题

变态跳台阶

变态跳台阶