統計的機械学習の数理100問 with Pythonに載っていたt分布をF#で書いてみました。
今回は凡例が書けるようになりました。
Chart.XXXXの引数でNameを指定し、パイプライン演算子で Chart.WithLegend() に渡せばOKです。
Chart.Line( [for x in -10.0 .. 0.1 .. 10.0 -> x, Normal.PDF(0.0, 1.0, x) ], Color=System.Drawing.Color.Red, Name="Norm") |> Chart.WithLegend()
上手く凡例が入りました。
以下ソース
open MathNet.Numerics.Distributions open FSharp.Charting let plot_student_t(path) = let mutable chart_list = [] let chart = Chart.Line( [for x in -10.0 .. 0.1 .. 10.0 -> x, Normal.PDF(0.0, 1.0, x) ], Color=System.Drawing.Color.Red, Name="Norm") |> Chart.WithLegend() chart_list <- chart :: chart_list for v in 1 .. 10 do let chart = Chart.Line ( [for x in -10.0 .. 0.1 .. 10.0 -> x, StudentT.PDF(0.0, 1.0, double(v), x)] , Name=string(v)) |> Chart.WithLegend() chart_list <- chart :: chart_list let chart_comb = List.rev chart_list |> Chart.Combine let output_file = path + @"t.png" Chart.Save output_file chart_comb None