我正在尝试从FSharp Charting实施实时图表。文档here为实时折线图提供类型签名,如下所示:

static member LiveChart.Line : data:IObservable<#seq<'a1 * 'a2>> * ?Name:string * ?Title:string * ?Color:Color * ?XTitle:string * ?YTitle:string -> GenericChart (requires 'a1 :> key and 'a2 :> value)


我有一个IObservable,它发出具有时间和值的时间序列的数据,但是IObservable >到底是什么?!为何该函数的参数是一个巨大的元组?

最佳答案

早期的Observable和Live Chart无效,但我写了一个简单的示例:

open System
open System.Windows.Forms
open System.Reactive.Linq
open FSharp.Charting

[<EntryPoint>]
[<STAThread>]
let main argv =

    Application.EnableVisualStyles()
    Application.SetCompatibleTextRenderingDefault false

    let form = new Form(Visible = true, TopMost = true,
                            Width = 700, Height = 500)
    let rand = new Random()
    let obs = Observable.Interval(TimeSpan.FromSeconds(1.0)).
                 ObserveOn(WindowsFormsSynchronizationContext.Current)
                |> Observable.map(fun _ -> DateTime.Now.ToShortTimeString(),rand.Next(0,21))

    let one  = LiveChart.FastLineIncremental(obs,Name="Simple Example")

    one.ShowChart()
    Application.Run form
    0


也许这段代码将有助于解决您的问题。几分钟后,工作:



如果我(作为新手)犯了严重的错误,我希望站点中经验丰富的成员可以纠正我。如果我给了不好的建议,我提前致歉

10-05 21:12
查看更多