How to display a FSharp.Charting chart in an existing form?

I donโ€™t understand how to create a chart control and put the chart in an existing form. All the examples I found on the Internet show a chart in a new form, but I would like to add a chart to one of my existing forms.

I am thinking of something like this:

let form = new Form(Text="My form") let lbl = new Label(Text="my label") let chart = Chart.Area ["a", 10; "b", 20] form.Controls.Add lbl form.Controls.Add chart // ---> The type 'ChartTypes.GenericChart' is not compatible with the type 'Control' Application.Run(form) 

Thanks!

+4
source share
1 answer

To achieve this, you must wrap your chart in FSharp.Charting.ChartTypes.ChartControl and take care of the correct docking. Also, do not mix Chart with FSharp.Charting with Chart from System.Windows.Forms.DataVisualization.Charting .

A good point to observe might be the following fully functional pattern, which works with the current FSharp.Charting v0.90.5; System.Drawing and System.Windows.Forms links are also required:

 open System open FSharp.Charting open FSharp.Charting.ChartTypes open System.Drawing open System.Windows.Forms [<STAThread; EntryPoint>] let main args = let myChart = [for x in 0.0 .. 0.1 .. 6.0 -> sin x + cos (2.0 * x)] |> Chart.Line |> Chart.WithYAxis(Title="Test") let myChartControl = new ChartControl(myChart, Dock=DockStyle.Fill) let lbl = new Label(Text="my label") let form = new Form(Visible = true, TopMost = true, Width = 700, Height = 500) form.Controls.Add lbl form.Controls.Add(myChartControl) do Application.Run(form) |> ignore 0 
+15
source

All Articles