Einführung
Matplotlib ist eine leistungsstarke Datenvisualisierungsbibliothek in Python. Es bietet eine Vielzahl von Tools zur Erstellung einer Vielzahl von Graphen, Diagrammen und Plots. Eine der leistungsfähigsten Funktionen von Matplotlib ist seine Fähigkeit, Daten zu skalieren. In diesem Lab wird Ihnen die AsinhScale vorgestellt, die eine Transformation ist, die es ermöglicht, Größen zu plotten, die einen sehr weiten Dynamikbereich abdecken, der sowohl positive als auch negative Werte umfasst.
VM-Tipps
Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken 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.
Matplotlib installieren
Bevor Sie beginnen, stellen Sie sicher, dass Matplotlib installiert ist. Sie können es mit dem pip-Befehl wie folgt installieren:
pip install matplotlib
Importieren der erforderlichen Bibliotheken
Um die AsinhScale zu verwenden, müssen wir die Matplotlib-Bibliothek und die numpy-Bibliothek importieren. Numpy ist eine leistungsstarke numerische Computationsbibliothek in Python, die häufig in Verbindung mit Matplotlib verwendet wird.
import matplotlib.pyplot as plt
import numpy as np
Beispiel-Daten erstellen
Bevor wir Daten mit der AsinhScale plotten können, müssen wir einige Beispiel-Daten erstellen. Wir werden einen einfachen Liniendiagramm mit der linspace-Methode von numpy erstellen.
## Prepare sample values for variations on y=x graph:
x = np.linspace(-3, 6, 500)
Vergleiche das Verhalten von "symlog" und "asinh" auf einem Beispiel y=x-Graphen
Wir werden das Verhalten von "symlog" und "asinh" auf einem Beispiel y=x-Graphen vergleichen. Wir werden denselben Graphen 两次 mals plotten, einmal mit "symlog" und einmal mit "asinh".
fig1 = plt.figure()
ax0, ax1 = fig1.subplots(1, 2, sharex=True)
ax0.plot(x, x)
ax0.set_yscale('symlog')
ax0.grid()
ax0.set_title('symlog')
ax1.plot(x, x)
ax1.set_yscale('asinh')
ax1.grid()
ax1.set_title('asinh')
注:原文中“两次”表述有误,已按正确意思翻译。
Vergleiche "asinh"-Graphen mit unterschiedlichen Skalenparametern "linear_width"
Wir werden nun "asinh"-Graphen mit unterschiedlichen Skalenparametern "linear_width" vergleichen. Wir werden drei Graphen mit unterschiedlichen Werten für "linear_width" plotten.
fig2 = plt.figure(layout='constrained')
axs = fig2.subplots(1, 3, sharex=True)
for ax, (a0, base) in zip(axs, ((0.2, 2), (1.0, 0), (5.0, 10))):
ax.set_title(f'linear_width={a0:.3g}')
ax.plot(x, x, label='y=x')
ax.plot(x, 10*x, label='y=10x')
ax.plot(x, 100*x, label='y=100x')
ax.set_yscale('asinh', linear_width=a0, base=base)
ax.grid()
ax.legend(loc='best', fontsize='small')
Vergleiche die Skalierungen "symlog" und "asinh" für 2D Cauchy-verteilte Zufallszahlen
Schließlich werden wir die Skalierungen "symlog" und "asinh" für 2D Cauchy-verteilte Zufallszahlen vergleichen. Wir werden denselben Graphen 两次 mals plotten, einmal mit "symlog" und einmal mit "asinh".
fig3 = plt.figure()
ax = fig3.subplots(1, 1)
r = 3 * np.tan(np.random.uniform(-np.pi / 2.02, np.pi / 2.02,
size=(5000,)))
th = np.random.uniform(0, 2*np.pi, size=r.shape)
ax.scatter(r * np.cos(th), r * np.sin(th), s=4, alpha=0.5)
ax.set_xscale('asinh')
ax.set_yscale('symlog')
ax.set_xlabel('asinh')
ax.set_ylabel('symlog')
ax.set_title('2D Cauchy random deviates')
ax.set_xlim(-50, 50)
ax.set_ylim(-50, 50)
ax.grid()
注:原文中“两次”表述有误,已按正确意思翻译。
Zusammenfassung
In diesem Lab wurde die AsinhScale in Matplotlib vorgestellt, die eine Transformation ist, die es ermöglicht, Größen zu plotten, die einen sehr großen Dynamikbereich abdecken, der sowohl positive als auch negative Werte umfasst. Wir haben gelernt, wie man Beispiel-Daten erstellt und wie man Graphen mit "symlog" und "asinh" plotten kann. Wir haben auch gelernt, wie man "asinh"-Graphen mit unterschiedlichen Skalenparametern vergleicht und wie man die Skalierungen "symlog" und "asinh" auf 2D Cauchy-verteilten Zufallszahlen vergleicht.