마스킹된 값과 NaN 값 플로팅 #

누락된 값이 있는 데이터를 플로팅해야 하는 경우가 있습니다.

한 가지 가능성은 원하지 않는 데이터 포인트를 간단히 제거하는 것입니다. 나머지 데이터를 통해 그려진 선은 연속적이며 누락된 데이터가 있는 위치를 나타내지 않습니다.

데이터가 누락된 라인에 간격이 있는 것이 유용한 경우 마스킹된 배열 을 사용 하거나 해당 값을 NaN으로 설정하여 원하지 않는 지점을 표시할 수 있습니다. x 또는 y가 마스크된 곳에 마커가 그려지지 않으며, 선으로 플로팅하는 경우 해당 위치에서 끊어집니다.

다음 예는 세 가지 경우를 보여줍니다.

  1. 포인트 제거.

  2. 마스킹 포인트.

  3. NaN으로 설정합니다.

마스크 및 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()

Sphinx-Gallery에서 생성한 갤러리