Dies ist eine Folge von this question.pyqtgraph: richtet die Ticks der x-Achsen in verschiedenen Plots aus
Die Frage ist, wie die X-Achsen-Skalierung von mehreren Pyqtgraphen anzupassen ist, wenn einer der Diagramme neu skaliert wird. Mein Wunschergebnis ist, dass die Ticks aller Graphen perfekt ausgerichtet sind, so dass Sie den Inhalt beider Graphen direkt vergleichen können.
Die gegebene Antwort archiviert diese Aufgabe, die Graphen auf Änderungen neu zu skalieren, aber wenn der Inhalt der Graphen unterschiedlich ist, neigt die y-Achsenbeschreibung dazu, von unterschiedlicher Größe zu sein, die irgendwie alles vermasselt.
Zum Beispiel im unteren Bild habe ich das untere Diagramm so angepasst, dass es ungefähr den Bereich 0-100 abdeckt. Seltsamerweise zeigt das obere Diagramm ein größeres Intervall.
Haben Sie Ideen, wie Sie die Ticks während der Neuskalierung ausrichten können?
Quellcode des Beispiels:
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtGui
import numpy as np
from pyqtgraph.dockarea import *
import sys
def onSigRangeChanged(r):
w1.sigRangeChanged.disconnect(onSigRangeChanged)
w2.sigRangeChanged.disconnect(onSigRangeChanged)
if w1==r:
w2.setRange(xRange=r.getAxis('bottom').range)
elif w2 == r:
w1.setRange(xRange=r.getAxis('bottom').range)
w1.sigRangeChanged.connect(onSigRangeChanged)
w2.sigRangeChanged.connect(onSigRangeChanged)
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)
d2.addWidget(w2)
w1.sigRangeChanged.connect(onSigRangeChanged)
w2.sigRangeChanged.connect(onSigRangeChanged)
win.show()
sys.exit(app.exec_())