Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich diskontinuierliche X-Achsen in Matplotlib mithilfe von Unterplots?

Wie erstelle ich diskontinuierliche X-Achsen in Matplotlib mithilfe von Unterplots?

Barbara Streisand
Freigeben: 2024-12-18 01:45:10
Original
823 Leute haben es durchsucht

How to Create Discontinuous X-Axes in Matplotlib Using Subplots?

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()
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage