Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Maskierte und NaN-Werte darstellen #
Manchmal müssen Sie Daten mit fehlenden Werten darstellen.
Eine Möglichkeit besteht darin, unerwünschte Datenpunkte einfach zu entfernen. Die Linie, die durch die verbleibenden Daten gezeichnet wird, ist durchgehend und zeigt nicht an, wo sich die fehlenden Daten befinden.
Wenn es sinnvoll ist, Lücken in der Zeile zu haben, wo die Daten fehlen, können die unerwünschten Punkte mit einem maskierten Array oder durch Setzen ihrer Werte auf NaN angezeigt werden. Es wird keine Markierung gezeichnet, wo entweder x oder y maskiert sind, und wenn mit einer Linie gezeichnet wird, wird sie dort unterbrochen.
Das folgende Beispiel veranschaulicht die drei Fälle:
Punkte entfernen.
Maskierungspunkte.
Einstellung auf NaN.
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-np.pi/2, np.pi/2, 31)
y = np.cos(x)**3
# 1) remove points where y > 0.7
x2 = x[y <= 0.7]
y2 = y[y <= 0.7]
# 2) mask points where y > 0.7
y3 = np.ma.masked_where(y > 0.7, y)
# 3) set to NaN where y > 0.7
y4 = y.copy()
y4[y3 > 0.7] = np.nan
plt.plot(x*0.1, y, 'o-', color='lightgrey', label='No mask')
plt.plot(x2*0.4, y2, 'o-', label='Points removed')
plt.plot(x*0.7, y3, 'o-', label='Masked values')
plt.plot(x*1.0, y4, 'o-', label='NaN values')
plt.legend()
plt.title('Masked and NaN data')
plt.show()