Bei der Datenvisualisierung werden Farbkarten verwendet, um numerische Daten durch Farbe darzustellen. Allerdings kann die Datenverteilung manchmal nichtlinear sein, was es schwierig machen kann, die Details der Daten zu erkennen. In solchen Fällen kann die Farbkartennormalisierung verwendet werden, um Farbkarten auf nichtlineare Weise auf Daten abzubilden und so die Daten genauer darzustellen. Matplotlib bietet mehrere Normalisierungsmethoden, darunter SymLogNorm und AsinhNorm, die zum Normalisieren von Farbkarten verwendet werden können. In diesem Labor wird gezeigt, wie Sie SymLogNorm und AsinhNorm verwenden, um Farbkarten auf nichtlineare Daten abzubilden.
Nachdem der VM-Start abgeschlossen ist, klicken Sie auf die obere linke Ecke, um zur RegisterkarteNotebookzu wechseln und zum Üben auf Jupyter Notebook zuzugreifen.
Manchmal müssen Sie möglicherweise 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 beim Lernen auf Probleme stoßen, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback und wir werden das Problem umgehend für Sie lösen.
In diesem Schritt importieren wir die erforderlichen Bibliotheken, einschließlich Matplotlib-, NumPy- und Matplotlib-Farben.
import matplotlib.pyplot as plt import numpy as np import matplotlib.colors as colors
In diesem Schritt erstellen wir einen synthetischen Datensatz, der aus zwei Buckeln besteht, einem negativen und einem positiven, wobei der positive Buckel eine achtmal größere Amplitude als der negative Buckel hat. Anschließend wenden wir SymLogNorm an, um die Daten zu visualisieren.
def rbf(x, y): return 1.0 / (1 + 5 * ((x ** 2) + (y ** 2))) N = 200 gain = 8 X, Y = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)] Z1 = rbf(X + 0.5, Y + 0.5) Z2 = rbf(X - 0.5, Y - 0.5) Z = gain * Z1 - Z2 shadeopts = {'cmap': 'PRGn', 'shading': 'gouraud'} colormap = 'PRGn' lnrwidth = 0.5
In diesem Schritt wenden wir SymLogNorm auf die synthetischen Daten an und visualisieren die Ergebnisse.
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, vmin=-gain, vmax=gain, **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'linear') plt.show()
In diesem Schritt wenden wir AsinhNorm auf die synthetischen Daten an und visualisieren die Ergebnisse.
fig, ax = plt.subplots(2, 1, sharex=True, sharey=True) pcm = ax[0].pcolormesh(X, Y, Z, norm=colors.SymLogNorm(linthresh=lnrwidth, linscale=1, vmin=-gain, vmax=gain, base=10), **shadeopts) fig.colorbar(pcm, ax=ax[0], extend='both') ax[0].text(-2.5, 1.5, 'symlog') pcm = ax[1].pcolormesh(X, Y, Z, norm=colors.AsinhNorm(linear_width=lnrwidth, vmin=-gain, vmax=gain), **shadeopts) fig.colorbar(pcm, ax=ax[1], extend='both') ax[1].text(-2.5, 1.5, 'asinh') plt.show()
In diesem Labor haben wir gelernt, wie man SymLogNorm und AsinhNorm verwendet, um Farbkarten auf nichtlineare Daten abzubilden. Durch die Anwendung dieser Normalisierungsmethoden können wir die Daten genauer visualisieren und die Details der Daten leichter erkennen.
? Üben Sie jetzt: Matplotlib Colormap-Normalisierung
Das obige ist der detaillierte Inhalt vonMatplotlib-Colormap-Normalisierung: Visualisierung nichtlinearer Daten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!