April 28, 2006Rubyでgnuplot[Computer]
最近グラフを書く機会が多いのですが、ただ単純にデータファイルをプロットすればいいという単純な作業はむしろ少なく、データファイルを読み込んでそれから何がしかの計算をした結果をグラフとして出力するという少々込み入った作業が大半を占めています。いちいち中間ファイルを作ると後からみてわけがわからなくなるので、できるだけ計算とグラフ描画はひとつの処理としてまとめてしまいたいと考えました。そこでRubyからgnuplotをコントロールすることを考えました。 以前『リアルタイム Gnuplot』と称してC++からGnuplotに(擬似)リアルタイム描画させるということを紹介しましたが、今回も基本コンセプトは同じで、RubyからパイプでGnuplotにコマンドを発行してやり、グラフを描画することになります。しかしC++のときのように一から作りこむ必要はなく、そのような用途向けのライブラリが既にRubyにはあります。今回はそのライブラリの一つであるRgplotというものを試してみました。 RgplotのExamplesにあるとおり、非常に簡単にデータをグラフ描画させることができます。 class Gnuplot
あとはdef Gnuplot::plot_eps file_name #2次元プロット Gnuplot.open{|gp| Gnuplot::Plot::new(gp){|plot| plot.terminal "postscript eps enhanced color" plot.output file_name yield plot } } end def Gnuplot::splot_eps file_name #3次元プロット Gnuplot.open{|gp| Gnuplot::SPlot::new(gp){|plot| plot.terminal "postscript eps enhanced color" plot.output file_name yield plot } } end end Gnuplot::plot_eps(file_name){|plot| データの設定等の処理}
すればfile_nameで指定したファイルにepsが吐かれます。現在これを利用して快適にepsファイルを作成しています。
コメント
コメントする
|
スポンサード リンク
|