Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich eine diskontinuierliche X-Achse in Matplotlib?
In Matplotlib ist es möglich, das Erscheinungsbild der x-Achse zu ändern, um eine Diskontinuität zwischen zwei Wertebereichen anzuzeigen.
Obwohl es keine direkte Möglichkeit gibt, eine diskontinuierliche Achse zu erstellen, ist dies möglich Erzielen Sie einen ähnlichen Effekt, indem Sie die Achsenbeschriftungen und das Erscheinungsbild anpassen. Ein Ansatz besteht darin, eine benutzerdefinierte Transformation zu verwenden, um eine diskontinuierliche Achse zu erstellen.
Wenn Sie lieber keine benutzerdefinierte Transformation erstellen möchten, können Sie Unterplots verwenden, um den gewünschten Effekt zu erzielen. Indem Sie zwei Unterplots mit unterschiedlichen X-Achsen-Grenzwerten erstellen und die Stacheln dazwischen ausblenden, können Sie eine diskontinuierliche Achse simulieren.
import matplotlib.pyplot as plt import numpy as np x = np.r_[0:1:0.1, 9:10:0.1] y = np.sin(x) fig, (ax, ax2) = plt.subplots(1, 2, sharey=True) ax.plot(x, y, 'bo') ax2.plot(x, y, 'bo') ax.set_xlim(0, 1) ax2.set_xlim(9, 10) ax.spines['right'].set_visible(False) ax2.spines['left'].set_visible(False) ax.yaxis.tick_left() ax2.yaxis.tick_right() plt.subplots_adjust(wspace=0.15) plt.show()
Dieser Code erstellt einen Plot mit jeweils zwei Unterplots zeigt einen anderen Bereich von x-Werten. Die Überlappung zwischen den Nebenplots wird ausgeblendet, um den Eindruck einer diskontinuierlichen Achse zu erzeugen.
Um den Effekt der unterbrochenen Achsenlinien (//) hinzuzufügen, können Sie den folgenden Code verwenden:
ax.plot((1-d,1+d),(-d,+d), **kwargs) # top-left diagonal ax.plot((1-d,1+d),(1-d,1+d), **kwargs) # bottom-left diagonal kwargs.update(transform=ax2.transAxes) # switch to the bottom axes ax2.plot((-d,d),(-d,+d), **kwargs) # top-right diagonal ax2.plot((-d,d),(1-d,1+d), **kwargs) # bottom-right diagonal
wobei d die Größe der diagonalen Linien in Achsenkoordinaten darstellt. Dieser Code fügt den Ecken jeder Achse diagonale Linien hinzu, wodurch der Eindruck einer unterbrochenen Achse entsteht.
Das obige ist der detaillierte Inhalt vonWie erstelle ich eine diskontinuierliche X-Achse in Matplotlib?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!