matplotlibはなんといってもグラフのクオリティが高いところがいいのだが、少々重たくGUIには向かん。そんなこんなでPyQwtに手を出しけど、Qwtをどれくらい使いこなせるかが鍵。
PyQwtの例はネットにあまりなく、Qwtをあたらないけん。
C++を使える人はいいかも知れんけど、知らん人はqwtのドキュメント読んでもなかなか分からんのよね~
少し苦労して、プロットの形と線を変える方法を発見したのでアップ。
結果は写真のようになる。 EllipseんとこをDiamondとかにしてもよい。形はここをみて好きなのを選ぶ
忘れんように全ソースもメモ
PyQwtの例はネットにあまりなく、Qwtをあたらないけん。
C++を使える人はいいかも知れんけど、知らん人はqwtのドキュメント読んでもなかなか分からんのよね~
少し苦労して、プロットの形と線を変える方法を発見したのでアップ。
curve.setPen(Qt.QPen(Qt.Qt.blue, 2, Qt.Qt.DotLine))
curve.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse, Qt.QBrush(Qt.Qt.red),
Qt.QPen(Qt.Qt.red), Qt.QSize(5,5)))
結果は写真のようになる。 EllipseんとこをDiamondとかにしてもよい。形はここをみて好きなのを選ぶ
忘れんように全ソースもメモ
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.setPen(Qt.QPen(Qt.Qt.blue, 2, Qt.Qt.DotLine))
curve.setSymbol(Qwt.QwtSymbol(Qwt.QwtSymbol.Ellipse, Qt.QBrush(Qt.Qt.red),
Qt.QPen(Qt.Qt.red), Qt.QSize(5,5)))
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 件のコメント:
コメントを投稿