0

我正在开发一个应用程序 - 下面给出的代码。如果单击应用程序窗口左侧的按钮,它将在 Pyqt 小部件窗口上绘制两个系列。一条蓝色曲线和另一条白色曲线将出现在屏幕上。我需要为一条曲线应用线性刻度#,为另一条曲线应用对数刻度。我做不到。请在下面查看我的代码并提出建议。我的代码如下:

from PyQt5 import QtCore, QtGui, QtWidgets, Qt import pyqtgraph as pg from pyqtgraph import PlotWidget

类 Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1289, 815) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QtWidgets.QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.Combo_Log8 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.固定) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log8.sizePolicy().hasHeightForWidth()) self.Combo_Log8.setSizePolicy(sizePolicy) self.Combo_Log8.setObjectName("Combo_Log8") self. gridLayout.addWidget(self.Combo_Log8, 1, 3, 1, 1) self.textEdit = QtWidgets.QTextEdit(self.centralwidget) self.textEdit.setObjectName("textEdit") self.gridLayout.addWidget(self.textEdit, 3, 4, 1, 1) self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit.setObjectName("lineEdit ") self.gridLayout.addWidget(self.lineEdit, 1, 4, 1, 1) self.Combo_Log3 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log3.sizePolicy().hasHeightForWidth()) self.Combo_Log3.setSizePolicy(sizePolicy) self.Combo_Log3.setObjectName("Combo_Log3") self.gridLayout。 addWidget(self.Combo_Log3, 0, 1, 1, 1) self.Combo_Log7 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log7.sizePolicy().hasHeightForWidth()) self.Combo_Log7.setSizePolicy(sizePolicy) self.Combo_Log7.setObjectName("Combo_Log7 ") self.gridLayout.addWidget(self.Combo_Log7, 0, 3, 1, 1) self.Combo_Log6 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log6.sizePolicy().hasHeightForWidth()) self.Combo_Log6.setSizePolicy(sizePolicy) self.Combo_Log6.setObjectName("Combo_Log6") self.gridLayout。 addWidget(self.Combo_Log6, 1, 2, 1, 1) self.Combo_Log5 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log5.sizePolicy().hasHeightForWidth()) self. Combo_Log5.setSizePolicy(sizePolicy) self.Combo_Log5.setObjectName("Combo_Log5") self.gridLayout.addWidget(self.Combo_Log5, 0, 2, 1, 1) self.Combo_Log4 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets。 QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log4.sizePolicy().hasHeightForWidth()) self.Combo_Log4.setSizePolicy(sizePolicy) self.Combo_Log4.setObjectName("Combo_Log4") self.gridLayout.addWidget(self.Combo_Log4, 1, 1,1, 1) self.Combo_Log2 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.Combo_Log2.sizePolicy().hasHeightForWidth()) self.Combo_Log2.setSizePolicy(sizePolicy) self.Combo_Log2.setObjectName("Combo_Log2") self.gridLayout.addWidget(self.Combo_Log2, 1, 0, 1, 1) self. lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_2.setObjectName("lineEdit_2") self.gridLayout.addWidget(self.lineEdit_2, 2, 4, 1, 1) self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setObjectName("pushButton") self.gridLayout.addWidget(self.pushButton, 4, 4, 1, 1) self.Combo_Log1 = QtWidgets.QComboBox(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.Combo_Log1.sizePolicy().hasHeightForWidth()) self. Combo_Log1.setSizePolicy(sizePolicy) self.Combo_Log1.setObjectName("Combo_Log1") self.gridLayout.addWidget(self.Combo_Log1, 0, 0, 1, 1) self.label = QtWidgets.QLabel(self.centralwidget) self.label。 setObjectName("label") self.gridLayout.addWidget(self.label, 0, 4, 1, 1) self.scrollArea = QtWidgets.QScrollArea(self.centralwidget) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets. QSizePolicy.Expanding) sizePolicy.setHorizo​​ntalStretch(150) sizePolicy.setVerticalStretch(150) sizePolicy.setHeightForWidth(self.scrollArea.sizePolicy()。hasHeightForWidth()) self.scrollArea.setSizePolicy(sizePolicy) self.scrollArea.setMinimumSize(QtCore.QSize(0, 0)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtWidgets .QWidget() self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 970, 1526)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.gridLayout_2 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents) self.gridLayout_2.setObjectName ("gridLayout_2")第1526章)self.scrollAreaWidgetContents.setObjectName(“scrollAreaWidgetContents”)self.gridLayout_2 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)self.gridLayout_2.setObjectName(“gridLayout_2”)第1526章)self.scrollAreaWidgetContents.setObjectName(“scrollAreaWidgetContents”)self.gridLayout_2 = QtWidgets.QGridLayout(self.scrollAreaWidgetContents)self.gridLayout_2.setObjectName(“gridLayout_2”)

    self.graphicsView=PlotWidget(self.scrollAreaWidgetContents) ####### New to activate the graph plot ########

    self.graphicsView.setObjectName("graphicsView")
    self.gridLayout_2.addWidget(self.graphicsView, 0, 0, 1, 1)
  
    
    self.graphicsView_2 = QtWidgets.QGraphicsView(self.scrollAreaWidgetContents)
    self.graphicsView_2.setObjectName("graphicsView_2")
    self.gridLayout_2.addWidget(self.graphicsView_2, 0, 1, 1, 1)
    self.graphicsView_3 = QtWidgets.QGraphicsView(self.scrollAreaWidgetContents)
    self.graphicsView_3.setObjectName("graphicsView_3")
    self.gridLayout_2.addWidget(self.graphicsView_3, 0, 2, 1, 1)
    self.graphicsView_4 = QtWidgets.QGraphicsView(self.scrollAreaWidgetContents)
    self.graphicsView_4.setMinimumSize(QtCore.QSize(0, 1500))
    self.graphicsView_4.setObjectName("graphicsView_4")
    self.gridLayout_2.addWidget(self.graphicsView_4, 0, 3, 1, 1)
    self.scrollArea.setWidget(self.scrollAreaWidgetContents)
    self.gridLayout.addWidget(self.scrollArea, 2, 0, 3, 4)
    MainWindow.setCentralWidget(self.centralwidget)
    self.menubar = QtWidgets.QMenuBar(MainWindow)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 1289, 31))
    self.menubar.setObjectName("menubar")
    self.menuFile = QtWidgets.QMenu(self.menubar)
    self.menuFile.setObjectName("menuFile")
    self.menuEdit = QtWidgets.QMenu(self.menubar)
    self.menuEdit.setObjectName("menuEdit")
    MainWindow.setMenuBar(self.menubar)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)
    self.actionImport_LAS = QtWidgets.QAction(MainWindow)
    self.actionImport_LAS.setObjectName("actionImport_LAS")
    self.actionExit = QtWidgets.QAction(MainWindow)
    self.actionExit.setObjectName("actionExit")
    self.actionResample = QtWidgets.QAction(MainWindow)
    self.actionResample.setObjectName("actionResample")
    self.menuFile.addAction(self.actionImport_LAS)
    self.menuFile.addAction(self.actionExit)
    self.menuEdit.addAction(self.actionResample)
    self.menubar.addAction(self.menuFile.menuAction())
    self.menubar.addAction(self.menuEdit.menuAction())
    

    self.pushButton.clicked.connect(self.MyPlot)

    self.retranslateUi(MainWindow)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
    #########################################################
    
    #########################################################
def MyPlot(self):
    
    global MainPlot, AuxPlot
    
    
    ########### Y dataset ##################
    
    SelectedDepth=[100,200,300,400,500,600]
    
    ########### X1 dataset ##################
    
    SelectedData1_ToList = [12,23,43,45,56,76]
 
    ############ X2 dataset ################

    SelectedData2_ToList = [3,2,4,5,6,1]
     
    ########### Plot both Log1 and 2 #############
    
    MainPlot=self.graphicsView
    AuxPlot =pg.ViewBox() #pg.ViewBox() #self.gView  #pg.ViewBox() 
    
            
    ######### try to clear ##########
    
    global MyLog1
    global MyLog2
    
    try:
        MainPlot.removeItem(MyLog1)
        AuxPlot.removeItem(MyLog2)
    except: pass  #This means on error resume next
   
    ######### try to clear ends ##########
    
    AuxPlot.setYLink(MainPlot)

    
    MainPlot.scene().addItem(AuxPlot)
       

    AuxPlot.setGeometry(MainPlot.getPlotItem().vb.sceneBoundingRect())


    ax4 =pg.AxisItem('top')
    ax4.linkToView(AuxPlot)
    MainPlot.getAxis('top').linkToView(AuxPlot)

    MainPlot.showAxis('top')
    
        
    MainPlot.invertY(True)
    AuxPlot.invertY(True)
    
    
    MyLog1=pg.PlotCurveItem(SelectedData1_ToList,SelectedDepth, pen="w" )
    MainPlot.addItem(MyLog1)
    MainPlot.autoRange()
    
    MyLog2=pg.PlotCurveItem(SelectedData2_ToList,SelectedDepth, pen="b")
    AuxPlot.addItem(MyLog2)
    AuxPlot.autoRange()
    
    #########################################################
    
    #########################################################

def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.pushButton.setText(_translate("MainWindow", "PushButton"))
    self.label.setText(_translate("MainWindow", "TextLabel"))
    self.menuFile.setTitle(_translate("MainWindow", "File"))
    self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
    self.actionImport_LAS.setText(_translate("MainWindow", "Import LAS"))
    self.actionExit.setText(_translate("MainWindow", "Exit"))
    self.actionResample.setText(_translate("MainWindow", "Resample"))

if name == " main ": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_ ())

4

0 回答 0