ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

F#でグラフかけた

やってみた

何年かに一度Lispブームと型付きブームがあって、今はF#ブームです。F# for Machine Learning Essentials機械学習を勉強しようとしていたのですが、なかなかグラフが書けずに苦労しました。

とりあえず上手くいったので記録を残しておきます。

#load "../../FsLab.Templates-basic/packages/FsLab/FsLab.fsx"
open System
open FSharp.Data
open XPlot.GoogleCharts

let x =  [14.;16.;27.;42.;39.;50.;83.]
let y = [02.;05.;07.;09.;10.;13.;20.]

let b1 = 0.243756371049949 
let b0 = -0.00828236493374135 

let regressionPairs = x |> List.map ( fun xElem -> (xElem, b0 + b1* float xElem ))
let pairs = List.zip x y
  
let series = ["scatter"; "lines" ]
[pairs; regressionPairs]
|> Chart.Combo
|> Chart.WithOptions 
     (Options(series = [| for typ in series -> Series(typ) |]))

これで、Emacsからfsi.exe経由で実行すると、ブラウザが立ち上がってグラフが表示されます。


気になったこと

書籍では、FSPlot.Hichartsを使っていたのですが、エラーがでて動きませんでした。検索してみると、Xplot.GoogleCharts使えよって誰かが言ってたのでそっちなら上手く動きました。

Visual Studioから動かすとグラフが表示されない。

Visual Studioでソースを開くと、最後の式の結果がどこにも使われていないって警告がでます。これ知ってると|>ignoreにつなげると、fsi.exeで動かすときに何もグラフが表示されなくなる。これで1週間以上はまった。

Emacsのfsharp-modeで補完が効くときと効かない時があり、効かない時は

Error: c:/home/myproj/fsharp/FS_for_ML/chap2/plot.fs is not part of the loaded projects.

こんな感じで怒られるがよくわからない。

補完が効くときもどのキーでどう選ぶのかが良く分からない。そもそも補完のUIはfsharp-modeの機能じゃない気がしますが、最近はpackegeで必要な奴が勝手に入るので何が動いているのか良く分からない。