代码之家  ›  专栏  ›  技术社区  ›  James Hugard

如何在f_中绘制数据系列?

  •  8
  • James Hugard  · 技术社区  · 14 年前

    在之上 FSHUB , LethalLavaLand 说,

    让我画出我的价值观!

    因此,问题是,如何使用内置的.NET 4.0控件在F中绘制数据系列?

    3 回复  |  直到 9 年前
        1
  •  13
  •   James Hugard    14 年前

    因为我最近一直在使用.NET 4.0中内置的Microsoft图表控件(并且喜欢它的每一分钟!)我想我会努力回答我自己的问题…

    #r "System.Windows.Forms.DataVisualization"
    
    open System.Windows.Forms
    open System.Windows.Forms.DataVisualization.Charting
    
    type LineChartForm( title, xs : float seq ) =
        inherit Form( Text=title )
    
        let chart = new Chart(Dock=DockStyle.Fill)
        let area = new ChartArea(Name="Area1")
        let series = new Series()
        do series.ChartType <- SeriesChartType.Line
        do xs |> Seq.iter (series.Points.Add >> ignore)
        do series.ChartArea <- "Area1"
        do chart.Series.Add( series )
        do chart.ChartAreas.Add(area)
        do base.Controls.Add( chart )
    
    let main() =
        let data = seq { for i in 1..1000 do yield sin(float i / 100.0) }
        let f = new LineChartForm( "Sine", data )
        f.Show()
    
    main()
    
        2
  •  2
  •   Darknight    14 年前

    别忘了 你不必在F里做任何事。

    您可以将所有f计算汇总到一个库或类中,然后使用您想要的任何“前端”语言:

    例如,你可以很容易地嫁给F后端 使用WPF或Silverlight或C# WiFrase.

        3
  •  2
  •   J D    14 年前

    你可能会感激我的 parametric plot in F# 它使用.NET4中的新图表功能来可视化捕食者-猎物的动态。最初的5行Mathematica解决方案变成了19行F代码。通用语言不错!

    然而,这是一个一次性的解决方案,因此,在F Interactive中并不十分有用。要交互地重用相同的功能,您需要像我们的 F# for Visualization 产品做到了。技术也在我的 Visual F# 2010 for Technical Computing book .