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)
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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()