Trazado de valores enmascarados y NaN #

A veces es necesario trazar datos con valores faltantes.

Una posibilidad es simplemente eliminar puntos de datos no deseados. La línea trazada a través de los datos restantes será continua y no indicará dónde se encuentran los datos que faltan.

Si es útil tener espacios en la línea donde faltan los datos, los puntos no deseados se pueden indicar usando una matriz enmascarada o configurando sus valores en NaN. No se dibujará ningún marcador donde x o y estén enmascarados y, si se traza con una línea, se dividirá allí.

El siguiente ejemplo ilustra los tres casos:

  1. Quitando puntos.

  2. Puntos de enmascaramiento.

  3. Ajuste a NaN.

Datos enmascarados y 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()

Galería generada por Sphinx-Gallery