Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich überlappende Unterplots in Matplotlib verhindern, wenn ich viele vertikal gestapelte Plots erstelle?
Überlappende Unterplots in Matplotlib mit zahlreichen Plots
Beim Generieren einer Reihe vertikal gestapelter Plots in Matplotlib zur Anzeige auf einer Webseite ist es wichtig, einen angemessenen Abstand zwischen Unterplots sicherzustellen, um Überlappungen zu vermeiden. Trotz der Vergrößerung der Figur überlappen sich Nebenhandlungen häufig.
Aktuelle Implementierung
Der folgende Code veranschaulicht die aktuelle Implementierung:
import matplotlib.pyplot as plt import my_other_module titles, x_lists, y_lists = my_other_module.get_data() fig = plt.figure(figsize=(10,60)) for i, y_list in enumerate(y_lists): plt.subplot(len(titles), 1, i) plt.xlabel("Some X label") plt.ylabel("Some Y label") plt.title(titles[i]) plt.plot(x_lists[i],y_list) fig.savefig('out.png', dpi=100)
Lösung: Enges Layout
Um dieses Problem zu beheben, sollten Sie die Verwendung in Betracht ziehen matplotlib.pyplot.tight_layout oder matplotlib.figure.Figure.tight_layout. Diese Funktionen passen die Nebenhandlungen und Abstände so an, dass sie sich nicht überlappen.
Beispiel
import matplotlib.pyplot as plt fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8)) fig.tight_layout() # Or equivalently, "plt.tight_layout()" plt.show()
Visueller Vergleich
Die folgenden Bilder veranschaulichen die Auswirkungen der Verwendung von Tight_layout:
Ohne Tight_layout
Mit Tight_layout
Das obige ist der detaillierte Inhalt vonWie kann ich überlappende Unterplots in Matplotlib verhindern, wenn ich viele vertikal gestapelte Plots erstelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!