반응형
소개
matplotlib에서 작업할 때 종종 마주치는 오류 중 하나가 'ValueError: axis limits cannot be NaN or infinite'입니다. 이 에러는 주로 x축이나 y축의 데이터에 NaN(결정되지 않은 값)이나 무한대값이 포함되어 있을 때 발생합니다. 이 글에서는 이러한 오류의 발생 원인과 해결 방법을 함께 살펴보겠습니다.
에러 발생 예시 코드
먼저, 이 오류가 발생할 수 있는 간단한 예시 코드를 확인해보겠습니다.
import matplotlib.pyplot as plt
import numpy as np
# NaN 값을 포함한 데이터 생성
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 2, np.nan, 4, 5])
# 그래프 그리기
plt.plot(x, y)
plt.show()
에러 해결 방법
1. NaN 및 무한대 값 처리하기
가장 먼저 해결해야 할 것은 데이터에서 NaN이나 무한대 값을 제거하는 것입니다. 이는 numpy의 np.isnan() 및 np.isfinite() 함수를 사용하여 쉽게 처리할 수 있습니다.
import matplotlib.pyplot as plt
import numpy as np
# NaN 값을 포함한 데이터 생성
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 2, np.nan, 4, 5])
# NaN 및 무한대 값 제거
x_clean = x[np.isfinite(y)]
y_clean = y[np.isfinite(y)]
# 그래프 그리기
plt.plot(x_clean, y_clean)
plt.show()
2. 데이터 유효성 검사
그래프를 그리기 전에 데이터를 확인하여 NaN이나 무한대 값이 포함되어 있는지 확인하는 것이 좋습니다. 다음은 데이터를 검증하는 방법의 예시입니다.
import matplotlib.pyplot as plt
import numpy as np
# 데이터 생성
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 2, np.nan, 4, 5])
# 데이터 유효성 검사
if np.any(np.isnan(y)) or np.any(np.isinf(y)):
print("데이터에 NaN 또는 무한대 값이 포함되어 있습니다.")
else:
plt.plot(x, y)
plt.show()
마무리
이번 블로그 글에서는 matplotlib에서 'ValueError: axis limits cannot be NaN or infinite' 오류를 해결하는 방법을 살펴보았습니다. 데이터에서 NaN 및 무한대 값을 제거하거나, 데이터 유효성 검사를 통해 이러한 오류를 예방할 수 있습니다. 데이터 시각화를 진행하며 이런 오류들에 유의하여 좋은 결과물을 만들어 나가세요!
반응형
'Python > matplotlib' 카테고리의 다른 글
matplotlib ImportError: 'matplotlib'을 가져오는 데 실패했습니다 오류 해결하기 (0) | 2024.11.13 |
---|---|
matplotlib RuntimeError: GDK 백엔드가 없습니다 오류 해결하기 (0) | 2024.11.13 |
matplotlib ValueError: contourf에 대한 유효하지 않은 인수 오류 해결하기 (0) | 2024.11.13 |
matplotlib ImportError: 'mpl_toolkits' 모듈을 찾을 수 없습니다 오류 해결하기 (0) | 2024.11.13 |
matplotlib ValueError: 'y' 값을 해석할 수 없습니다 오류 해결하기 (0) | 2024.11.13 |