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([])
Ein oder zwei Sinuswellen
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()

Galerie generiert von Sphinx-Gallery