2012年7月24日火曜日

pythonでグラフ pyqwt入門

python(x,y)に入っていたguiqwtはすごく高級なだけに、なかなかやりたいことがすぐ出来なかった。
ドキュメントがフランス語?みたいなのもあったし。試行錯誤したけど、もう諦めたwプログラムのわかっていない僕が複雑なことをやろうとすると、その場しのぎになって、かえってソースがぐちゃぐちゃしてしまう。

よってもう一つ低級なpyqwtでQtにプロットさせることを考える。
ドキュメントは「C++のqwtをみてね」、といった感じなので初心者には少し取っつきにくけど例を参考に少しずつやっていこう。 http://pyqwt.sourceforge.net/

まずは、シンプルなsin関数の表示をやってみた。




import sys
from PyQt4 import QtGui, Qt
import PyQt4.Qwt5 as Qwt
import numpy as np
from numpy import pi

class SimplePlot(Qwt.QwtPlot):
    def __init__(self, *args):
        Qwt.QwtPlot.__init__(self, *args)
        self.setTitle('simple plot demo')
        self.setCanvasBackground(Qt.Qt.white)
        
        #grid
        grid = Qwt.QwtPlotGrid()
        grid.attach(self)
        grid.setPen(Qt.QPen(Qt.Qt.black, 0, Qt.Qt.DotLine)) #make grid dotted-line
        
        x = np.linspace(-2*pi, 2*pi, 100)
        y = np.sin(x)
        
        curve = Qwt.QwtPlotCurve('y=sin(x)')
        curve.attach(self)
        curve.setData(x,y)
        
        self.replot()
        
def main():
    app = QtGui.QApplication(sys.argv)

    plot = SimplePlot()
    plot.setMinimumSize(300,200)
    plot.show()
    sys.exit(app.exec_())

if __name__ == "__main__":
    main()


0 件のコメント:

コメントを投稿