pyqtgraph: align the ticks of the x-axes in different plots

前端 未结 1 1724
萌比男神i
萌比男神i 2021-01-23 21:19

This is a follow up to this question.

The question is how to adapt the x-axis scaling of multiple pyqtgraphs when one of the graphs is rescaled. My desired result is tha

相关标签:
1条回答
  • 2021-01-23 21:45

    I just found the answer in this question.

    Instead of connecting to the sigRangeChanged event we can directly link the axes scales by w2.setXLink(w1). Of course we have to remove the connections to sigRangeChanged or the scales will shoot to the sky. Here is the example code:

    import pyqtgraph as pg
    from pyqtgraph.Qt import QtCore, QtGui
    import numpy as np
    from pyqtgraph.dockarea import *
    import sys
    
    app = QtGui.QApplication(sys.argv)
    
    win = QtGui.QMainWindow()
    area = DockArea()
    win.setCentralWidget(area)
    win.resize(1000,500)
    win.setWindowTitle('pyqtgraph example: dockarea')
    
    
    d1 = Dock("Dock1")
    d2 = Dock("Dock2")
    area.addDock(d1, 'bottom')
    area.addDock(d2, 'bottom', d1)
    
    w1 = pg.PlotWidget(title="Dock 1 plot")
    w1.plot(np.random.normal(size=100)*1e12)
    w1.plotItem.showGrid(x=True,y=True,alpha=1)
    d1.addWidget(w1)
    
    w2 = pg.PlotWidget(title="Dock 2 plot")
    w2.plot(np.random.normal(size=100))
    w2.plotItem.showGrid(x=True,y=True,alpha=1)
    w2.setXLink(w1)
    d2.addWidget(w2)
    
    win.show()
    
    sys.exit(app.exec_())
    
    0 讨论(0)
提交回复
热议问题