Plotando valores mascarados e NaN #

Às vezes, você precisa plotar dados com valores ausentes.

Uma possibilidade é simplesmente remover pontos de dados indesejados. A linha traçada através dos dados restantes será contínua e não indicará onde os dados ausentes estão localizados.

Se for útil ter lacunas na linha onde faltam os dados, os pontos indesejados podem ser indicados usando uma matriz mascarada ou definindo seus valores como NaN. Nenhum marcador será desenhado onde x ou y estiverem mascarados e, se estiver plotando com uma linha, será interrompido ali.

O exemplo a seguir ilustra os três casos:

  1. Removendo pontos.

  2. Pontos de mascaramento.

  3. Configurando para NaN.

Dados mascarados e 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()

Galeria gerada por Sphinx-Gallery