Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Pythonische Matplotlib #
Einige Leute schreiben lieber mehr "Pythonic", expliziten objektorientierten Code, anstatt die implizite Pyplot-Schnittstelle zu Matplotlib zu verwenden. Dieses Beispiel zeigt Ihnen, wie Sie die explizite Matplotlib-Schnittstelle nutzen können.
Sofern Sie kein Anwendungsentwickler sind, empfehle ich die Verwendung eines Teils der Pyplot-Oberfläche, insbesondere der Befehle figure, close, subplot, axis und show. Diese verbergen viel Komplexität vor Ihnen, die Sie bei der normalen Figurenerstellung nicht sehen müssen, wie das Instanziieren von DPI-Instanzen, das Verwalten der Begrenzungsrahmen der Figurenelemente, das Erstellen und Realisieren von GUI-Fenstern und das Einbetten von Figuren darin.
Wenn Sie ein Anwendungsentwickler sind und Matplotlib in Ihre Anwendung einbetten möchten, folgen Sie den Beispielen/embedding_in_wx.py, example/embedding_in_gtk.py oder example/embedding_in_tk.py. In diesem Fall möchten Sie die Erstellung aller Ihrer Figuren steuern, sie in Anwendungsfenster einbetten usw.
Wenn Sie ein Webanwendungsentwickler sind, möchten Sie vielleicht das Beispiel in webapp_demo.py verwenden, das zeigt, wie Sie die agg-Figurenleinwand des Backends direkt verwenden, ohne dass die globalen Werte (aktuelle Figur, aktuelle Achsen) im Pyplot vorhanden sind Schnittstelle. Beachten Sie jedoch, dass es keinen Grund gibt, warum die Pyplot-Schnittstelle für Entwickler von Webanwendungen nicht funktionieren sollte.
Wenn Sie ein Beispiel im Beispielverzeichnis sehen, das in der Pyplot-Schnittstelle geschrieben ist, und Sie dies mit den echten Python-Methodenaufrufen emulieren möchten, gibt es eine einfache Zuordnung. Viele dieser Beispiele verwenden 'set', um Figureigenschaften zu steuern. So ordnen Sie diese Befehle Instanzmethoden zu
Die Syntax von set lautet:
plt.setp(object or sequence, somestring, attribute)
wenn mit einem Objekt aufgerufen, Aufrufe setzen:
object.set_somestring(attribute)
Wenn es mit einer Sequenz aufgerufen wird, tut set Folgendes:
for object in sequence:
object.set_somestring(attribute)
Also für Ihr Beispiel, wenn a Ihr Achsenobjekt ist, können Sie Folgendes tun:
a.set_xticklabels([])
a.set_yticklabels([])
a.set_xticks([])
a.set_yticks([])
import matplotlib.pyplot as plt
import numpy as np
t = np.arange(0.0, 1.0, 0.01)
fig, (ax1, ax2) = plt.subplots(2)
ax1.plot(t, np.sin(2*np.pi * t))
ax1.grid(True)
ax1.set_ylim((-2, 2))
ax1.set_ylabel('1 Hz')
ax1.set_title('A sine wave or two')
ax1.xaxis.set_tick_params(labelcolor='r')
ax2.plot(t, np.sin(2 * 2*np.pi * t))
ax2.grid(True)
ax2.set_ylim((-2, 2))
l = ax2.set_xlabel('Hi mom')
l.set_color('g')
l.set_fontsize('large')
plt.show()