在 FSLAB 中使用 FSharp.Charting 绘制 Deedle 系列并编译 exe
Plotting Deedle series with FSharp.Charting in FSLAB and compiled exe
当使用 FSharp.Charting 绘制 Deedle DataFrame 或 Series 时,FSLAB 可以方便地重载各种 Chart 函数以直接与 Series 一起使用。例如,我可以做 Series(x,y) |> Chart.Column
。但是在编译 Deedle 时直接引用 FSharp.Charting 并且 Series 需要转换为 Series.observations Series(x,y) |> Series.observations |> Chart.Column
有没有办法避免Series.observations
?或者我是否需要为所有不同的图表功能定义一个扩展方法?这是 Plotting Deedle frame
中的建议
这是我使用的代码,它在 FSI 或 .exe 中都有效:
#if INTERACTIVE
#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
#r @"Deedle"
#r @"Fsharp.Charting"
#endif
open System
open Deedle
open FSharp.Charting
open FSharp.Charting.ChartTypes
open System.Drawing
open System.Windows.Forms
[<STAThread>]
[<EntryPoint>]
let main argv =
let x = ['a'..'j'] |> List.map string
let y = [1..10]
let chart1 = Series(x,y) |> Series.observations |> Chart.Column
let myChartControl = new ChartControl(chart1, Dock=DockStyle.Fill)
let form = new Form(Visible = true, TopMost = true, Width = 700, Height = 500)
form.Controls.Add(myChartControl)
do Application.Run(form) |> ignore
当您从脚本文件中引用 FsLab 时,FsLab.fsx
文件中定义了方便的重载。你可以 see them in the source code here.
我们希望将它们移动到您可以参考的 dll
,但目前,最简单的选择是将助手复制到您项目中的一个单独文件中,并且只有一个本地副本。
当使用 FSharp.Charting 绘制 Deedle DataFrame 或 Series 时,FSLAB 可以方便地重载各种 Chart 函数以直接与 Series 一起使用。例如,我可以做 Series(x,y) |> Chart.Column
。但是在编译 Deedle 时直接引用 FSharp.Charting 并且 Series 需要转换为 Series.observations Series(x,y) |> Series.observations |> Chart.Column
有没有办法避免Series.observations
?或者我是否需要为所有不同的图表功能定义一个扩展方法?这是 Plotting Deedle frame
这是我使用的代码,它在 FSI 或 .exe 中都有效:
#if INTERACTIVE
#load @"..\..\FSLAB\packages\FsLab\FsLab.fsx"
#r @"Deedle"
#r @"Fsharp.Charting"
#endif
open System
open Deedle
open FSharp.Charting
open FSharp.Charting.ChartTypes
open System.Drawing
open System.Windows.Forms
[<STAThread>]
[<EntryPoint>]
let main argv =
let x = ['a'..'j'] |> List.map string
let y = [1..10]
let chart1 = Series(x,y) |> Series.observations |> Chart.Column
let myChartControl = new ChartControl(chart1, Dock=DockStyle.Fill)
let form = new Form(Visible = true, TopMost = true, Width = 700, Height = 500)
form.Controls.Add(myChartControl)
do Application.Run(form) |> ignore
当您从脚本文件中引用 FsLab 时,FsLab.fsx
文件中定义了方便的重载。你可以 see them in the source code here.
我们希望将它们移动到您可以参考的 dll
,但目前,最简单的选择是将助手复制到您项目中的一个单独文件中,并且只有一个本地副本。