Форум сайта python.su
0
Добрый день!
Python2.7 PyQT4
Не получается создать график в отдельном модальном окне окне.
class MyModalWingraphik(QtGui.QWidget): def __init__(self,parent, flag, *args, **kwargs): QtGui.QWidget.__init__(self, parent, flag, *args, **kwargs) self.setWindowFlags(flag|QtCore.Qt.CustomizeWindowHint) self.setWindowModality(QtCore.Qt.WindowModal) #layout = QtGui.QGridLayout(self) #self.setLayout(layout) #------------------------------------------- view = pg.GraphicsLayoutWidget() layout.addWidget(view) #mw.setCentralWidget(view) #mw.setWindowTitle('pyqtgraph example: ScatterPlot') stringaxis = TimeAxisItem(orientation='bottom') w1 = view.addPlot(axisItems={'bottom': stringaxis}) x = ['0:09:48', '0:09:49', '0:09:50', '0:09:51', '0:09:52', '0:09:53', '0:09:54', '0:09:55', '0:09:56', '0:09:57'] y = [10, 8, 6, 4, 2, 20, 18, 16, 14, 12] time = QtCore.QTime.currentTime() QtCore.qsrand(time.msec()) for xi, yi in zip(x, y): s = pg.ScatterPlotItem([QtCore.QTime(0, 0, 0).secsTo(QtCore.QTime.fromString(xi, "h:mm:ss"))], [yi], size=10, pen=pg.mkPen(None)) s.setBrush(QtGui.QBrush(QtGui.QColor(QtCore.qrand() % 256, QtCore.qrand() % 256, QtCore.qrand() % 256))) w1.addItem(s) #------------------------------------------- ##---- self.button3 = QtGui.QPushButton(u"Выход", self) self.button3.clicked.connect(self.deleteLater) self.button3.setGeometry(10, 40, 80, 20) def closeEvent(self, QMesBox): #sys.exit(app.exec_()) pass #=================================================== class TimeAxisItem(pg.AxisItem): def tickStrings(self, values, scale, spacing): return [QtCore.QTime(0, 0, 0).addSecs(value).toString() for value in values]
def show_modal_wingrafik(self):
window2 = MyModalWingraphik(self, QtCore.Qt.Dialog)
window2.setWindowTitle(u"График")
window2.setGeometry(0, 0, 480, 272)
window2.show()
Офлайн
0
Ура, получилось
Как говорят надо с мыслью переспать))
..............
layout = QtGui.QGridLayout(self)
self.setLayout(layout)
...............
layout.addWidget(view,1,1)
..........
Отредактировано lefmails (Авг. 7, 2019 09:04:56)
Офлайн
0
Помогите пожалуйста перевести все в линии, отображается все в точках, ни как не получается сделать линиями
Офлайн
22
Помогите пожалуйста перевести все в линии, отображается все в точках, ни как не получается сделать линиямиНикогда PyQtGraph не использовал, но, поглядев в документацию, предположу, что надо объект pg.ScatterPlotItem заменить на pg.PlotCurveItem.
Офлайн
0
StriverСпасибо за наводку, начал делать, получилось с просто данными
PlotCurveItem
layout = QtGui.QGridLayout(self) self.setLayout(layout) a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b = [1, 10, 40, 100, 600, 800, 1100, 1100, 900, 800] w = pg.PlotWindow() layout.addWidget(w,1,1) stringaxis = TimeAxisItem(orientation='bottom') w = view.addPlot(axisItems={'bottom': stringaxis}) normalcurve = pg.PlotDataItem(a, b, pen=(255, 0, 0)) w.addItem(normalcurve) #w.show()
w = pg.PlotWindow()
w = pg.GraphicsLayoutWidget()
layout = QtGui.QGridLayout(self)
self.setLayout(layout)
#a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [1, 10, 40, 100, 600, 800, 1100, 1100, 900, 800]
a = ['0:09:48', '1:09:49', '2:09:50', '3:09:51', '4:09:52', '5:09:53', '6:09:54', '7:09:55', '9:09:56', '10:09:57']
w = pg.PlotWindow()
layout.addWidget(w,1,1)
stringaxis = TimeAxisItem(orientation='bottom')
w = view.addPlot(axisItems={'bottom': stringaxis})
time = QtCore.QTime.currentTime()
QtCore.qsrand(time.msec())
normalcurve = pg.PlotDataItem([QtCore.QTime(0, 0, 0).secsTo(QtCore.QTime.fromString(a, "h:mm:ss"))], b, pen=(255, 0, 0))
w.addItem(normalcurve)
Отредактировано lefmails (Авг. 15, 2019 08:33:38)
Офлайн