如何在 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 跳过图形块?的主要内容,如果未能解决你的问题,请参考以下文章