반응형
Matplotlib: contourf 함수로 매력적인 영역 등고선 그리기
파이썬의 Matplotlib 라이브러리는 데이터 시각화에 매우 유용한 도구입니다. 그 중 pyplot.contourf 함수는 2D 평면상의 데이터에 대한 등고선(컨투어) 플롯을 매우 효과적으로 그려줍니다. 이 포스팅에서는 contourf 함수의 사용법과 함께 시각적으로 매력적인 예제를 통해 설명하겠습니다.
contourf 함수 소개
contourf 함수는 주어진 x, y 좌표에 대한 z 값의 등고선을 색상으로 표현하여 2D 평면상의 오버레이를 만들어냅니다. 특히 데이터의 경향성을 시각적으로 설명할 수 있어 과학적 조사나 프레젠테이션에서 매우 유용합니다.
함수 시그니처
matplotlib.pyplot.contourf(X, Y, Z, levels=None, **kwargs)
매개변수:
- X: x 좌표로 구성된 2D 배열 또는 그리드.
- Y: y 좌표로 구성된 2D 배열 또는 그리드.
- Z: 각 (x,y) 쌍에 대한 z 값으로 구성된 2D 배열.
- levels: (선택 사항) 등고선의 레벨을 지정하는 수치 리스트.
반환 값:
- 컨투어 플롯을 출력하는 Axes 객체를 반환합니다.
사용 예제
기본 예제
다음은 contourf 함수를 사용하여 간단한 등고선 플롯을 만드는 예제입니다.
import numpy as np
import matplotlib.pyplot as plt
# 그리드 데이터 생성
x = np.linspace(-3.0, 3.0, 100)
y = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# contourf 함수로 등고선 플롯 생성
plt.contourf(X, Y, Z, cmap='viridis')
plt.colorbar() # 색상 바 추가
plt.title('Contourf Example')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
다양한 레벨 예제
여러 레벨의 등고선을 시각적으로 비교하기 위해 levels 매개변수를 사용하겠습니다.
import numpy as np
import matplotlib.pyplot as plt
# 그리드 데이터 생성
x = np.linspace(-3.0, 3.0, 100)
y = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 다양한 레벨로 contourf 플롯 생성
levels = np.linspace(-1, 1, 10)
plt.contourf(X, Y, Z, levels=levels, cmap='plasma')
plt.colorbar() # 색상 바 추가
plt.title('Contourf Example with Multiple Levels')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.show()
결론
matplotlib.pyplot.contourf 함수는 2D 데이터의 관계를 시각적으로 이해하는 데 매우 유용합니다. 이 함수는 데이터를 연구 및 의사소통의 도구로 활용하는 데 도움을 줍니다. 여러 레벨을 사용하여 다양한 색상을 더함으로써 데이터의 변화를 명확하게 보여줄 수 있습니다.
- 지금 바로 contourf 함수를 통해 색상으로 표현된 데이터를 시각적으로 탐험해보세요!
- 당신의 데이터 시각화의 가능성을 확장하고 독특한 통찰력을 발견해보세요!
반응형
'Python > matplotlib' 카테고리의 다른 글
파이썬 matplotlib.pyplot.axis 함수 활용하기 (0) | 2024.10.30 |
---|---|
파이썬 matplotlib.pyplot.colorbar 함수 활용하기 (0) | 2024.10.30 |
파이썬 matplotlib.pyplot.contour 함수 활용하기 (0) | 2024.10.30 |
파이썬 matplotlib.pyplot.drawing 함수 활용하기 (0) | 2024.10.30 |
matplotlib ImportError: The 'Agg' backend is not available 오류 해결하기 (2) | 2024.10.29 |