トップ «前の日記(2005-11-11) 最新 次の日記(2005-11-15)» 編集

あしたに日記[RSS]

Wiki/Bookmark/Top


2005-11-13 [長年日記]

rcairo

rcairo を使って2Dグラフプロットのできるライブラリを作成中。
require 'Figure'
f=Figure.new(400,300)
y=[12,2.2,12.4,21.5,13.3,12.4,13.5,2.0,-21.2]
f.plot(y)
f.grid
f.title("てきとープロット")
f.xlabel("time [sec]")
f.ylabel("Voltage [V]")
f.save("test.png")
の出力が下のようになる。
しかしいくらテキトーな例と言っても突然電圧が負のしかも-21Vになるなんて、これはなんのグラフだろう?
plot

いじってるうちにだいぶcairoの作法を覚えてきたけど、直感的だしそこそこ早い。utfな文字がさっくり書けるのも良いし、バックエンドがかなり上手く隠蔽されてて、あまり考えなくてもとりあえずなんか描けるってのも良い。

今のところ、フォントを右寄せする方法、あるいはプロポーショナルフォントで書いた文字列の実サイズを取得する方法がわからない
ので、y軸の軸ラベルが微妙に整列してない。他にも即値書きまくりで格好悪いので公開にはまだ至らず。

書いてみて思ったのだけど、グラフ描画ツールって、80%が見栄えの調整なのね。当たり前か。テーマとかスタイルシートみたいなもので見栄えが調整できるようにはしたいな...。

今のところ工夫したのは軸ラベルの選択ぐらい。1刻み、2刻み、5刻み、10刻み、...が自然なので、入力データから一番近い自然な刻みを設定するようにした。かなりテキトーにデータを入れても、EXCELみたいに馬鹿な刻み(1.24234刻みとか)にはならない。まあ完全に自動で望んだ通りになるのは無理だろうけど、見苦しくないようにはしたい。

本日のツッコミ(全3件) [ツッコミを入れる]
あし (2005-11-14 23:03)

あーそうか、c.text_extents("hoge").width とかで実サイズがわかるのか。

通りすがり (2005-11-15 16:32)

Rubyでデータ処理した後、そのままRubyでグラフが描ける!<br>gnuplotに食わせるより楽になれば使うひとが増えそう。

あし (2005-11-15 23:34)

コメントありがとうございます。がんばります。<br><br>Rubyから直接グラフが描けるライブラリはすでにいくつかありますが、こういうのは文房具なので自分の好みなやつを作りたかったんですよ。<br><br>インストールは環境によってはgnuplotのほうが楽かも。