Diskontinuierliche Achsen in Matplotlib
Das Erstellen einer diskontinuierlichen x-Achse in Matplotlib kann die Sichtbarkeit erheblicher Datenlücken verbessern. Während eine benutzerdefinierte Transformation ein effizienter Ansatz ist, kann die gewünschte Diskontinuität durch die Verwendung von Unterdiagrammen problemlos erreicht werden.
Eine Methode besteht darin, zwei Unterdiagramme zu verwenden und die Y-Achsen-Ausrichtung zu teilen. Zoomen Sie in verschiedene Teile der Daten und passen Sie die X-Achsen-Grenzen an, um sich auf bestimmte Abschnitte zu konzentrieren. Indem Sie die Stacheln zwischen den Nebenplots ausblenden und die Ausrichtung der Teilstriche anpassen, können Sie die Diskontinuität erzeugen.
Für einen optisch auffälligeren Effekt gebrochener Achsen können diagonale Linien hinzugefügt werden. Geben Sie die gewünschte Diagonalgröße in Achsenkoordinaten an. Deaktivieren Sie die Beschneidung und legen Sie die entsprechende Transformation für jede diagonale Linie fest, um sicherzustellen, dass sie in die richtige Ecke der Achsen fällt. Durch die Verwendung dieser Methode passen sich die diagonalen Linien dynamisch an, wenn sich der Abstand zwischen den Unterplots ändert.
Hier ist ein Beispielcode, der diese Techniken beinhaltet:
import matplotlib.pyplot as plt import numpy as np # Generate sample data x = np.r_[0:1:0.1, 9:10:0.1] y = np.sin(x) # Create subplots and set x-axis limits fig, (ax, ax2) = plt.subplots(1, 2, sharey=True) ax.set_xlim(0, 1) ax2.set_xlim(9, 10) # Plot data and hide spines ax.plot(x, y, 'bo') ax2.plot(x, y, 'bo') ax.spines['right'].set_visible(False) ax2.spines['left'].set_visible(False) ax.yaxis.tick_left() ax.tick_params(labeltop='off') ax2.yaxis.tick_right() # Adjust spacing and add diagonal lines plt.subplots_adjust(wspace=0.15) # Define diagonal line parameters d = .015 kwargs = dict(transform=ax.transAxes, color='k', clip_on=False) ax.plot((1 - d, 1 + d), (-d, +d), **kwargs) ax.plot((1 - d, 1 + d), (1 - d, 1 + d), **kwargs) kwargs.update(transform=ax2.transAxes) ax2.plot((-d, d), (-d, +d), **kwargs) ax2.plot((-d, d), (1 - d, 1 + d), **kwargs) plt.show()
Das obige ist der detaillierte Inhalt vonWie erstelle ich diskontinuierliche X-Achsen in Matplotlib mithilfe von Unterplots?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!