やってみた
何年かに一度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で必要な奴が勝手に入るので何が動いているのか良く分からない。