Observação
Clique aqui para baixar o código de exemplo completo
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:
Removendo pontos.
Pontos de mascaramento.
Configurando para 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()