Построение серии Deedle с помощью FSharp.Charting в FSLAB и скомпилированном exe

При построении графического элемента данных Deedle или серии с помощью FSharp.Charting FSLAB удобно перегружает различные функции диаграммы для непосредственной работы с сериями. Так что я могу сделать Series(x,y) |> Chart.Column например. Однако при компиляции Deedle и FSharp.Charting ссылаются напрямую, и Series необходимо привести к Series.o bservations 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

1 ответ

Решение

Удобные перегрузки определены в FsLab.fsx файл, который загружается при ссылке на FsLab из файла сценария. Вы можете увидеть их в исходном коде здесь.

Мы хотели бы перенести их в dll Вы могли бы сослаться, но на данный момент самый простой вариант - скопировать помощников в отдельный файл в вашем проекте и просто иметь локальную копию.

Другие вопросы по тегам