pythonでグラフを描画その3は複数のグラフを描画させる。
これはQwtではなくQtの側の操作。
QwtPlotのオブジェクトを作ってそれをQWidgetにaddWidgetで加える。
それだけです。
データ同士を結ぶ線、左のグラフでは見えなくて、右では黒の線になっている。
実は左では線の色に白を指定して見難くしているだけ。
どうやって線自体を消すのだろう。。。
ソースも今後の参考に載せます。
これはQwtではなくQtの側の操作。
QwtPlotのオブジェクトを作ってそれをQWidgetにaddWidgetで加える。
それだけです。
データ同士を結ぶ線、左のグラフでは見えなくて、右では黒の線になっている。
実は左では線の色に白を指定して見難くしているだけ。
どうやって線自体を消すのだろう。。。
ソースも今後の参考に載せます。
import sys from PyQt4.QtGui import QApplication, QWidget, QHBoxLayout from PyQt4.Qt import Qt, QPen, QSize, QBrush from PyQt4.Qwt5.Qwt import QwtPlot, QwtPlotGrid, QwtPlotCurve, QwtSymbol import numpy as np from numpy import pi class PlotWidget(QwtPlot): def __init__(self, title, *args): QwtPlot.__init__(self, *args) self.setTitle(title) self.setCanvasBackground(Qt.white) #grid grid = QwtPlotGrid() grid.attach(self) grid.setPen(QPen(Qt.black, 0, Qt.DotLine)) #make grid dotted-line self.replot() class MultiPlotWidget(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.setWindowTitle("multiple graphs") hlayout = QHBoxLayout() self.setLayout(hlayout) #data creation x = np.linspace(-2*pi, 2*pi, 100) y1 = np.sin(x) y2 = np.cos(x) #create plots plot1 = PlotWidget("plot1") curve1 = QwtPlotCurve('y=sin(x)') curve1.setPen(QPen(Qt.white, 0)) curve1.setSymbol(QwtSymbol(QwtSymbol.Ellipse, QBrush(Qt.red), QPen(Qt.red), QSize(5,5))) curve1.setData(x,y1) curve1.attach(plot1) plot2 = PlotWidget("plot2") curve2 = QwtPlotCurve('y=cos(x)') curve2.setPen(QPen(Qt.black, 0)) curve2.setSymbol(QwtSymbol(QwtSymbol.Rect, QBrush(Qt.blue), QPen(Qt.blue), QSize(5,5))) curve2.setData(x,y2) curve2.attach(plot2) #add plots to the main widget self.layout().addWidget(plot1) self.layout().addWidget(plot2) def main(): app = QApplication(sys.argv) plot = MultiPlotWidget() plot.setMinimumSize(300,200) plot.show() sys.exit(app.exec_()) if __name__ == "__main__": main()
0 件のコメント:
コメントを投稿