2016-03-03 56 views
6
open FSharp.Charting 
open System 

[<EntryPoint>] 
let main argv = 
    printfn "%A" argv 
    let x = Chart.Line [ for x in -100 .. 100 -> x, pown x 3] 
    let y = Console.ReadKey(); 
    0 //return an integer exit code 

喂工作,我想在项目模式脚本与F#的发挥。到目前为止,我有上面的代码以及它告诉我添加一个System.Drawing的引用,我也这样做了。我的F#图图书馆不以项目

我有0错误或警告,当我编译,它运行得很好。控制台屏幕出现,但没有其他事情发生。该图只是不显示或任何东西。

我已经在交互式窗口中试过了,它在那里工作得非常好。有任何想法吗?

回答

6

正如@ s952163提到的,你可以将它包装到Winforms中。但是,ShowChart()已经返回System.Windows.Form的值。所以,只要你用Application.Run(f)抽水事件,这段代码也能正常工作:

[<EntryPoint>] 
let main argv = 
    printfn "%A" argv 
    let f = (Chart.Line [ for x in -100 .. 100 -> x, pown x 3]).ShowChart() 
    System.Windows.Forms.Application.Run(f) 
    0 
4

你应该把它包装在Winforms中。请参阅:How to display an FSharp.Charting graph in an existing form?

一个非常准系统例如:

open FSharp.Charting 
open System 
open System.Windows.Forms 

[<STAThread>] 
[<EntryPoint>] 
let main argv = 
    printfn "%A" argv 
    let chart = Chart.Line [ for x in -100 .. 100 -> x, pown x 3] 
    let f1 = new Form(Visible = true, TopMost = true, Width = 700, Height = 500) 
    f1.Controls.Add(new ChartTypes.ChartControl(chart, Dock = DockStyle.Fill)) 
    Application.Run(f1) 
    0 // return an integer exit code 

请参考System.Drawing中,System.Windows.Forms的,System.Windows.Forms.DataVisualization