Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Matplotlib에서 마스크 및 NaN 값을 플롯하는 방법은 무엇입니까?

<시간/>

Matplotlib에서 마스크 및 NaN 값을 플롯하려면 다음 단계를 수행할 수 있습니다. -

  • 그림 크기를 설정하고 서브플롯 사이 및 주변 여백을 조정합니다.
  • x 만들기 및 y numpy를 사용한 데이터 포인트
  • x2 받기 및 y2 y> 0.7과 같은 데이터 포인트 .
  • 마스킹 y3 y> 0.7과 같은 데이터 포인트 .
  • 마스크 y3 NaN 값으로.
  • 플롯 x , y , y2 , y3y4 plot() 사용 방법.
  • 그림에 범례를 배치합니다.
  • 플롯의 제목을 설정합니다.
  • 그림을 표시하려면 show()를 사용하세요. 방법.

예시

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

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()

출력

Matplotlib에서 마스크 및 NaN 값을 플롯하는 방법은 무엇입니까?