2016-03-03 54 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