def __init__(self): qt.QMainWindow.__init__(self) self.setWindowTitle("Plot with synchronized axes") widget = qt.QWidget(self) self.setCentralWidget(widget) layout = qt.QGridLayout() widget.setLayout(layout) backend = "mpl" data = numpy.arange(100 * 100) data = (data % 100) / 5.0 data = numpy.sin(data) data = silx.test.utils.add_gaussian_noise(data, mean=0.01) data.shape = 100, 100 data1d = numpy.mean(data, axis=0) self.plot2d = plot.Plot2D(parent=widget, backend=backend) self.plot2d.setGraphTitle("A pixel can't be too big") self.plot2d.setInteractiveMode('pan') self.plot2d.addImage(data) self.plot2d.getXAxis().setRangeConstraints(minRange=10) self.plot2d.getYAxis().setRangeConstraints(minRange=10) self.plot2d2 = plot.Plot2D(parent=widget, backend=backend) self.plot2d2.setGraphTitle("The image can't be too small") self.plot2d2.setInteractiveMode('pan') self.plot2d2.addImage(data) self.plot2d2.getXAxis().setRangeConstraints(maxRange=200) self.plot2d2.getYAxis().setRangeConstraints(maxRange=200) self.plot1d = plot.Plot1D(parent=widget, backend=backend) self.plot1d.setGraphTitle("The curve is clamped into the view") self.plot1d.addCurve(x=numpy.arange(100), y=data1d, legend="mean") self.plot1d.getXAxis().setLimitsConstraints(minPos=0, maxPos=100) self.plot1d.getYAxis().setLimitsConstraints(minPos=data1d.min(), maxPos=data1d.max()) self.plot1d2 = plot.Plot1D(parent=widget, backend=backend) self.plot1d2.setGraphTitle("Only clamp y-axis") self.plot1d2.setInteractiveMode('pan') self.plot1d2.addCurve(x=numpy.arange(100), y=data1d, legend="mean") self.plot1d2.getYAxis().setLimitsConstraints(minPos=data1d.min(), maxPos=data1d.max()) layout.addWidget(self.plot2d, 0, 0) layout.addWidget(self.plot1d, 0, 1) layout.addWidget(self.plot2d2, 1, 0) layout.addWidget(self.plot1d2, 1, 1)
def createWidget(self, parent): from silx.gui import plot widget = plot.Plot2D(parent=parent) widget.setKeepDataAspectRatio(True) widget.getXAxis().setLabel('X') widget.getYAxis().setLabel('Y') return widget
def createWidget(self, parent): from silx.gui import plot widget = plot.Plot2D(parent=parent) widget.getIntensityHistogramAction().setVisible(True) widget.setKeepDataAspectRatio(True) widget.getXAxis().setLabel('X') widget.getYAxis().setLabel('Y') return widget
def imagePlot(self): try: widget = silx_plot.Plot2D() image = numpy.arange(10 * 10).reshape(10, -1) widget.addImage(image) widget.show() self.qWaitForWindowExposed(widget) yield widget finally: widget.close() widget = None self.qWait()
def __init__(self, parent=None): """Constructor""" super(DataViewer, self).__init__(parent) self.__plot1d = plot.Plot1D() self.__plot2d = plot.Plot2D() self.__text = qt.QLabel() self.__text.setAlignment(qt.Qt.AlignCenter) self.__index1d = self.addWidget(self.__plot1d) self.__index2d = self.addWidget(self.__plot2d) self.__indexText = self.addWidget(self.__text) self.setCurrentIndex(self.__indexText)
def __init__(self): qt.QMainWindow.__init__(self) self.setWindowTitle("Plot with synchronized axes") widget = qt.QWidget(self) self.setCentralWidget(widget) layout = qt.QGridLayout() widget.setLayout(layout) backend = "mpl" self.plot2d = plot.Plot2D(parent=widget, backend=backend) self.plot2d.setInteractiveMode('pan') self.plot1d_x1 = plot.Plot1D(parent=widget, backend=backend) self.plot1d_x2 = plot.PlotWidget(parent=widget, backend=backend) self.plot1d_y1 = plot.Plot1D(parent=widget, backend=backend) self.plot1d_y2 = plot.PlotWidget(parent=widget, backend=backend) data = numpy.arange(100 * 100) data = (data % 100) / 5.0 data = numpy.sin(data) data = silx.test.utils.add_gaussian_noise(data, mean=0.01) data.shape = 100, 100 self.plot2d.addImage(data) self.plot1d_x1.addCurve(x=numpy.arange(100), y=numpy.mean(data, axis=0), legend="mean") self.plot1d_x1.addCurve(x=numpy.arange(100), y=numpy.max(data, axis=0), legend="max") self.plot1d_x1.addCurve(x=numpy.arange(100), y=numpy.min(data, axis=0), legend="min") self.plot1d_x2.addCurve(x=numpy.arange(100), y=numpy.std(data, axis=0)) self.plot1d_y1.addCurve(y=numpy.arange(100), x=numpy.mean(data, axis=1), legend="mean") self.plot1d_y1.addCurve(y=numpy.arange(100), x=numpy.max(data, axis=1), legend="max") self.plot1d_y1.addCurve(y=numpy.arange(100), x=numpy.min(data, axis=1), legend="min") self.plot1d_y2.addCurve(y=numpy.arange(100), x=numpy.std(data, axis=1)) self.constraint1 = SyncAxes([ self.plot2d.getXAxis(), self.plot1d_x1.getXAxis(), self.plot1d_x2.getXAxis() ]) self.constraint2 = SyncAxes([ self.plot2d.getYAxis(), self.plot1d_y1.getYAxis(), self.plot1d_y2.getYAxis() ]) self.constraint3 = SyncAxes( [self.plot1d_x1.getYAxis(), self.plot1d_y1.getXAxis()]) self.constraint4 = SyncAxes( [self.plot1d_x2.getYAxis(), self.plot1d_y2.getXAxis()]) layout.addWidget(self.plot2d, 0, 0) layout.addWidget(self.createCenteredLabel(u"↓↑"), 1, 0) layout.addWidget(self.plot1d_x1, 2, 0) layout.addWidget(self.createCenteredLabel(u"↓↑"), 3, 0) layout.addWidget(self.plot1d_x2, 4, 0) layout.addWidget(self.createCenteredLabel(u"→\n←"), 0, 1) layout.addWidget(self.plot1d_y1, 0, 2) layout.addWidget(self.createCenteredLabel(u"→\n←"), 0, 3) layout.addWidget(self.plot1d_y2, 0, 4) layout.addWidget(self.createCenteredLabel(u"↗↙"), 2, 2) layout.addWidget(self.createCenteredLabel(u"↗↙"), 4, 4)
def initUI(self): # class vairables self.image = None self.sfh5 = None self.imgpath = None self.scanNr = None self.scanXmot = None self.scanXpos = None self.scanLen = None self.scanData = None #top level elements of the full window mainBox = QHBoxLayout(self) mainBox.setContentsMargins(0, 0, 0, 0) primSplitter = QSplitter(Qt.Horizontal) #second level elements #left secSplitterLeft = QSplitter(Qt.Vertical) # third level elements # top lefttop = QFrame(self) lefttop.setFrameShape(QFrame.StyledPanel) self.loadButton = QPushButton("data") #self.changeDirButton.setEnabled(False) #self.changeDirButton.clicked.connect(self.openFile) filelab = QLabel('File:') grid = QGridLayout() grid.setSpacing(10) grid.addWidget(self.loadButton, 1, 0,1,3) self.loadButton.clicked.connect(self.onLoadFile) grid.addWidget(filelab, 2, 0) lefttop.setLayout(grid) #bottom left leftbottom = QFrame(self) leftbottom.setFrameShape(QFrame.StyledPanel) hboxfile = QVBoxLayout(self) hboxfile.setContentsMargins(0, 0, 0, 0) leftbottom.setLayout(hboxfile) #self.tree=QListWidget() #self.model = QStandardItemModel(self.tree) #self.tree.clicked.connect(self.onScanSelect) #hboxfile.addWidget(self.tree) # finalizing 3rd level secSplitterLeft.addWidget(lefttop) secSplitterLeft.addWidget(leftbottom) secSplitterLeft.setStretchFactor(0,0) secSplitterLeft.setStretchFactor(1,1) #right secSplitterRight = QSplitter(Qt.Vertical) # plot hboxplot = QHBoxLayout(self) hboxplot.setContentsMargins(0, 0, 0, 0) righttop = QFrame(self) righttop.setFrameShape(QFrame.NoFrame) righttop.setLayout(hboxplot) colormap = {'name': 'temperature', 'normalization': 'log', 'autoscale': True, 'vmin': 0.0, 'vmax': 1.0} self.myplot = plot.Plot2D() hboxplot.addWidget(self.myplot) #topright.setMinimumSize(300, 300) self.myplot.setDefaultColormap(colormap) self.myplot.setYAxisInverted() #bottom text rightbottom = QFrame(self) rightbottom.setFrameShape(QFrame.NoFrame) vboxtextfield = QVBoxLayout(self) vboxtextfield.setContentsMargins(0, 10, 0, 0) self.text = QTextEdit() alab = QLabel('a:') hboxfile.addWidget(alab) self.slider_a = QSlider(Qt.Horizontal) self.slider_a.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_a) blab = QLabel('b:') hboxfile.addWidget(blab) self.slider_b = QSlider(Qt.Horizontal) self.slider_b.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_b) clab = QLabel('c:') hboxfile.addWidget(clab) self.slider_c = QSlider(Qt.Horizontal) self.slider_c.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_c) alphalab = QLabel('alpha:') hboxfile.addWidget(alphalab) self.slider_alpha = QSlider(Qt.Horizontal) self.slider_alpha.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_alpha) betalab = QLabel('beta:') hboxfile.addWidget(betalab) self.slider_beta = QSlider(Qt.Horizontal) self.slider_beta.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_beta) gamlab = QLabel('gam:') hboxfile.addWidget(gamlab) self.slider_ga = QSlider(Qt.Horizontal) self.slider_ga.valueChanged.connect(self.onSlide) hboxfile.addWidget(self.slider_ga) self.slider_a.setRange(100,1500) ## in 0.01Ang.. jsut to have iteger numbers self.slider_a.setValue(915) self.slider_b.setRange(100,2500) ## in 0.01Ang.. jsut to have iteger numbers self.slider_b.setValue(497) self.slider_c.setRange(100,5000) ## in 0.01Ang.. jsut to have iteger numbers self.slider_c.setValue(2180) self.slider_alpha.setRange(500,1200) ## in 0.1Deg.. jsut to have iteger numbers self.slider_alpha.setValue(848) self.slider_beta.setRange(500,1200) ## in 0.1Deg.. jsut to have iteger numbers self.slider_beta.setValue(1005) self.slider_ga.setRange(500,1200) ## in 0.1Deg.. jsut to have iteger numbers self.slider_ga.setValue(679) self.pbar=QProgressBar() vboxtextfield.addWidget(self.pbar) vboxtextfield.addWidget(self.text) sb=self.text.verticalScrollBar() sb.maximum() rightbottom.setLayout(vboxtextfield) # finalizing 3rd level secSplitterRight.addWidget(righttop) secSplitterRight.addWidget(rightbottom) # finalizing 2nd level components primSplitter.addWidget(secSplitterLeft) primSplitter.addWidget(secSplitterRight) # finalizing first level components mainBox.addWidget(primSplitter) self.setLayout(mainBox) self.setGeometry(300, 300, 700, 600) self.adjustSize() self.text.append("ScanViewer for ID03 - still unstable!\n") self.setWindowTitle('UnitCellIndexerGUI') self.show()