Matplotlib - Techniken zur Datenvisualisierung

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.