Data Plot / Lisp (Scheme)

Lisp(Scheme)プログラム環境でのグラフプロットに、前々回でも使用したDrRacketを使ってみました。

環境 : DrRacket6.1.1 / Windows 7

(require plot)
(require plot/typed)
(require 2htdp/batch-io)

(define xs '(1 2 3 4 5 6 7 8 9 10))
(define ys (map (lambda (x) (* x x)) xs))
(plot (points (map vector xs ys)))

(define xy (read-csv-file/rows "/temp/data.csv" (lambda (x) (cons (string->number (car x)) (cons (string->number (car (cdr x))) '())))))
(plot (points xy))

x,yの値を別々のリストで保持しているときの実行結果が以下です。
racket01
CUIとGUIを混同したような、画面になります。(Mathematicaライク)ドラッグで拡大できたりします。

次はCSVファイルからデータを読みこんだ場合です。

0,2
1,4
2,6
3,8
4,6
5,4
6,2
7,4
8,6
9,8
10,10

文字列として読み込むので、数値に変換しています。

racket02

Lispでデータ処理をするときに、途中結果を手軽に見るのに便利そうです。
なによりもRacketはドキュメントが充実しているので、とても使いやすいです。
ドキュメントからも描画関係の機能がとても豊富なのがわかります。
かなり遊べそうです。

About

Categories: 未分類 タグ: