HaskellからGnuplotを呼び出してチャートを描く
gnuplot用のパッケージをインストールして、
import Graphics.Gnuplot.Simple するだけ。とても簡単。
パッケージのインストール
$ cabal install gnuplot
チャートを描く
まずはGraphics.Gnuplot.Simpleをインポートする。
$ ghci GHCi, version 7.0.4: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. Prelude> import Graphics.Gnuplot.Simple Prelude Graphics.Gnuplot.Simple>
チャートを描く関数はみんなplot〜という名前になっている。
これらを呼び出してチャートを描画していく。
Prelude Graphics.Gnuplot.Simple> plot plotDots plotFuncs plotLists plotParamFunc plotPathStyle plotType plotFunc plotList plotListsStyle plotParamFuncs plotPaths plotFunc3d plotListStyle plotMesh3d plotPath plotPathsStyle
例えば0~2πまでのsinの値をプロットする場合は以下のように実行する。
linerScaleは、第二引数のタプルで指定された範囲の値を第一引数の数だけリストにして返す関数。
plotPathの第一引数のリストで、プロット属性を指定する。
Prelude Graphics.Gnuplot.Simple> let xs = linearScale 1000 (0, 2*pi) Prelude Graphics.Gnuplot.Simple> let ys = fmap sin xs Prelude Graphics.Gnuplot.Simple> let points = zip xs ys Prelude Graphics.Gnuplot.Simple> plotPath [(Title "hello")] points
これを実行すると以下のようにsinカーブが描画される。