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:

  1. Punkte entfernen.

  2. Maskierungspunkte.

  3. Einstellung auf NaN.

Maskierte und NaN-Daten
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()

Galerie generiert von Sphinx-Gallery