2012年7月15日日曜日

guiqwtとmatplotlib

これまでmatplotlibのグラフ機能を勉強してそれをGUIアプリケーションに応用しようと考えていました。matplotlibはとても有名で、資料も豊富なのですが、どうも僕の用途には向かないようです。なぜならグラフをsubplotとして複数(10枚~)表示さえると著しく速度が低下してしまう。データ処理して表示さえるだけならいいのですが、インタラクティブに操作するには大変問題となってしまいます。

OpenGLで開発するしかないか。。。と諦めかけていた矢先、qtの開発環境としてPython(x,y)をインストールしたら、guiqwtなるものを発見しました。しかもサンプル付きで、そのサンプルがとても魅力的。

これはと思ってサンプルをいじって、何枚かグラフを表示させると明らかにmatplotlibよりも速い。

guiqwtとはPyQwt(PyQt4のプロットウィジット)とnumpyやscipyを元にしたもので、効率のよい2Dプロットを実現してくれるもの、らしい。http://packages.python.org/guiqwt/overview.html

たとえば、最低限の機能なら同じように記述できる。
import guiqwt.pyplot as plt # only this line has changed!
import numpy as np
x = np.linspace(-10, 10)
plt.plot(x, x**2, 'r+')
plt.show()


でも、前に書いたみたいにfig.add_subplot(111)などはできなかった。
今後はPyQtの勉強も兼ねてこのguiqwtの勉強をしていこう。



0 件のコメント:

コメントを投稿