F#でなるべく簡単にグラフ表示をさせたい その4
今回はチャート・ライブラリ F# Chartingを利用してグラフを作成します。
VisualStudio 2013のプロジェクトにNugetを利用してライブラリをインストールするためにプロジェクトの「参照設定」から、右クリックメニュー項目「Nugetパッケージの管理」を選択。
Nugetパッケージ管理の画面で、オンラインで「fsharp.charting」と文字列検索します。「FSharp.Charting」の項目が見つかったら「インストール」のボタンを押してインストール実行。
ライブラリを使って折れ線グラフを描くコードの例
プロジェクトの参照設定に、FSharp.Charting・System.Windows.Forms・System.Drawingが追加されていることを確認。
open System open FSharp.Charting [<EntryPoint; STAThread>] let main _ = let fscChart: FSharp.Charting.ChartTypes.GenericChart = [ for x in 0.0.. 0.02 .. (Math.PI * 2.0) -> (x, Math.Sin x) ] |> Chart.Line let chartCtrl: FSharp.Charting.ChartTypes.ChartControl = new FSharp.Charting.ChartTypes.ChartControl(fscChart) chartCtrl.Dock <- System.Windows.Forms.DockStyle.Fill let form = new System.Windows.Forms.Form(Width = 700, Height = 400, Text = "FSharp.Chartingのテスト") form.Controls.Add(chartCtrl) System.Windows.Forms.Application.Run(form) 0
実行結果
Windowsアプリケーションとしてビルドして実行すると、以下のようなウィンドウが表示されます。
[2016-02-04 追記]
X軸方向のグリッド位置にハンパな値を割り振られてしまうので修正。
let fscChart: FSharp.Charting.ChartTypes.GenericChart = [ for x in 0.0.. 0.02 .. (Math.PI * 2.0) -> (x, Math.Sin x) ] |> Chart.Line
上記の部分に1行追加。
let fscChart: FSharp.Charting.ChartTypes.GenericChart = [ for x in 0.0.. 0.02 .. (Math.PI * 2.0) -> (x, Math.Sin x) ] |> Chart.Line |> Chart.WithXAxis(Min = 0.0)
ChartクラスのWithXAxisメソッドを呼び出してX軸方向の最小値を明示的に指定。この追加行において、クラスのメソッド引数のみで利用可能な「名前付き引数(Named Arguments)」及び「省略可能なパラメータ(Optional Arguments)」の文法が使われている。詳細はMSDN:パラメーターと引数 (F#)を参照のこと。