Einführung
Zweck dieses Lab ist es, zu demonstrieren, wie man zwei Skalen auf der linken und rechten y-Achse anzeigt. In diesem Beispiel werden die Fahrenheit- und Celsius-Skalen verwendet. Wir werden eine Closure-Funktion verwenden, um uns als Callback zu registrieren, um die zweite Achse gemäß der ersten Achse zu aktualisieren.
VM-Tipps
Nachdem die VM gestartet ist, klicken Sie in der linken oberen Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.
Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.
Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.
Importieren der erforderlichen Bibliotheken
Zunächst müssen wir die Bibliotheken numpy und matplotlib.pyplot importieren.
import matplotlib.pyplot as plt
import numpy as np
Definieren einer Funktion zur Umrechnung von Fahrenheit in Celsius
Als nächstes definieren wir eine Funktion, um die Temperatur in Fahrenheit in Celsius umzurechnen.
def fahrenheit2celsius(temp):
"""
Gibt die Temperatur in Celsius zurück, wenn die Fahrenheit-Temperatur angegeben ist.
"""
return (5. / 9.) * (temp - 32)
Definieren einer Funktion zum Aktualisieren der zweiten Achse
Wir werden eine Closure-Funktion definieren, um uns als Callback zu registrieren, um die zweite Achse gemäß der ersten Achse zu aktualisieren.
def convert_ax_c_to_celsius(ax_f):
"""
Aktualisiere die zweite Achse gemäß der ersten Achse.
"""
y1, y2 = ax_f.get_ylim()
ax_c.set_ylim(fahrenheit2celsius(y1), fahrenheit2celsius(y2))
ax_c.figure.canvas.draw()
Erstellen des Diagramms
Jetzt erstellen wir ein Diagramm mit zwei y-Achsen mithilfe der subplots()-Funktion von matplotlib.pyplot. Wir verbinden auch das ylim_changed-Ereignis der ersten Achse mit der convert_ax_c_to_celsius()-Funktion.
fig, ax_f = plt.subplots()
ax_c = ax_f.twinx()
ax_f.callbacks.connect("ylim_changed", convert_ax_c_to_celsius)
Zeichnen der Daten
Wir zeichnen die Daten mit der plot()-Funktion der ersten Achse.
ax_f.plot(np.linspace(-40, 120, 100))
Festlegen der Achsengrenzen und -beschriftungen
Wir legen die Grenzen der x-Achse auf (0,100) fest und geben die y-Achsenbeschriftungen und den Titel an.
ax_f.set_xlim(0, 100)
ax_f.set_title('Two scales: Fahrenheit and Celsius')
ax_f.set_ylabel('Fahrenheit')
ax_c.set_ylabel('Celsius')
Zeige das Diagramm an
Schließlich zeigen wir das Diagramm mit der show()-Funktion von matplotlib.pyplot.
plt.show()
Zusammenfassung
In diesem Lab haben wir gelernt, wie man mit Python Matplotlib zwei Skalen auf der linken und rechten y-Achse anzeigt. Wir haben eine Schließfunktion verwendet, um uns als Callback zu registrieren, um die zweite Achse gemäß der ersten Achse zu aktualisieren. Dies ist nützlich, wenn wir zwei Datensätze mit unterschiedlichen Maßeinheiten darstellen möchten.