-
pandas와 한 몸 전처리의 마지막 matplotlibpandas 2024. 11. 22. 12:37
주요 pyplot 메서드 요약
- 기본 그래프: plot(), scatter(), bar(), hist(), pie()
- 꾸미기: title(), xlabel(), ylabel(), legend(), grid()
- 서브플롯: subplots()
- 스타일: style.use(), color, linestyle, marker
- 범위 설정: xlim(), ylim()
- 파일 저장: savefig()
- 기타 플롯: boxplot(), violinplot(), stem(), fill_between()
- 텍스트: text(), annotate()
1. Pyplot: Matplotlib의 핵심
Matplotlib의 pyplot 모듈은 시각화를 손쉽게 구현하도록 돕는 MATLAB 스타일의 인터페이스입니다. 데이터 시각화를 위해 Matplotlib를 사용할 때 가장 많이 사용하는 모듈로, plt라는 이름으로 주로 import합니다.
import matplotlib.pyplot as plt # 간단한 라인 그래프 plt.plot([1, 2, 3, 4], [10, 20, 25, 30]) plt.title("Simple Line Plot") plt.show()
- 주요 함수:
- plot(): 기본 라인 그래프
- scatter(): 산점도
- bar(): 막대 그래프
- hist(): 히스토그램
- pie(): 원형 차트
- imshow(): 이미지 데이터를 시각화
2. Figure와 Axes: 시각화의 기본 구조
Matplotlib는 그래프를 Figure와 Axes라는 두 가지 기본 요소로 구성합니다.
- Figure: 그래프가 그려지는 전체 캔버스
- Axes: 실제 데이터를 표현하는 공간
fig, ax = plt.subplots() # Figure와 Axes 생성 ax.plot([1, 2, 3], [1, 4, 9]) ax.set_title("Figure and Axes Example") plt.show()
3. 다양한 스타일과 테마
Matplotlib는 다양한 스타일을 제공합니다. 기본 스타일을 바꾸거나, 테마를 적용하여 그래프의 디자인을 향상할 수 있습니다.
plt.style.use('ggplot') # ggplot 스타일 적용 plt.plot([1, 2, 3, 4], [10, 20, 15, 25]) plt.title("Styled Line Plot") plt.show()
사용할 수 있는 스타일 보기
print(plt.style.available)
4. 서브플롯: 여러 그래프를 한 화면에
하나의 Figure 안에 여러 개의 Axes를 배치할 수 있습니다. 이를 서브플롯이라 합니다.
fig, axes = plt.subplots(2, 2) # 2x2 서브플롯 생성 axes[0, 0].plot([1, 2, 3], [1, 4, 9]) # 첫 번째 서브플롯 axes[0, 1].bar(['A', 'B', 'C'], [5, 7, 3]) # 두 번째 서브플롯 axes[1, 0].scatter([1, 2, 3], [9, 8, 7]) # 세 번째 서브플롯 axes[1, 1].hist([1, 1, 2, 3, 3, 3], bins=3) # 네 번째 서브플롯 plt.tight_layout() # 레이아웃 정리 plt.show()
5. 색상, 선 스타일, 마커 설정
Matplotlib는 그래프의 선 색상, 스타일, 마커를 세부적으로 조정할 수 있습니다.
plt.plot( [1, 2, 3, 4], [10, 20, 25, 30], color='red', # 선 색상 linestyle='--', # 선 스타일 marker='o', # 데이터 마커 linewidth=2 # 선 두께 ) plt.title("Custom Line Style") plt.show()
6. 주석과 텍스트 추가
그래프에 주석이나 텍스트를 추가하여 데이터를 더 명확하게 표현할 수 있습니다.
plt.plot([1, 2, 3], [10, 20, 15]) plt.text(2, 20, "This is a point", fontsize=12, color='blue') # 텍스트 추가 plt.annotate( 'Peak', xy=(2, 20), xytext=(2.5, 22), arrowprops=dict(facecolor='black', shrink=0.05) ) # 화살표 주석 plt.show()
7. 3D 그래프
Matplotlib의 mpl_toolkits.mplot3d 모듈을 사용하면 3D 그래프도 쉽게 그릴 수 있습니다.
from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # 3D Axes 생성 x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9] ax.scatter(x, y, z) plt.show()
8. 데이터 시각화의 확장성
Matplotlib는 다음과 같은 라이브러리와 결합하여 더 강력한 기능을 제공합니다:
- Pandas: 데이터프레임의 데이터를 바로 시각화.
- Seaborn: Matplotlib 위에 구축된 고급 시각화 도구로 스타일이 더 우아함.
- Plotly: Matplotlib와 달리 인터랙티브 그래프 생성 가능.
결론
Matplotlib는 Python 생태계에서 가장 중요한 시각화 도구 중 하나로, 단순한 플롯부터 고급 커스터마이징까지 모든 것을 지원합니다. 데이터 전처리에는 Pandas, 시각화에는 Matplotlib를 함께 사용하면 거의 모든 데이터 분석 작업을 완벽히 처리할 수 있습니다. 시작이 어렵게 느껴질 수 있지만, 몇 가지 기본 함수만 익혀도 여러분만의 시각화를 만들 수 있습니다!
'pandas' 카테고리의 다른 글
전처리 데이터로 그래프 만들기 2 (0) 2024.11.25 전처리 데이터로 그래프 만들기 2 (0) 2024.11.25 pandas의 시각화 - 차트 (0) 2024.11.22 pandas 수 많은 데이터를 한 번에 가져오는 방법 (1) 2024.11.21 pandas - .apply( ) (0) 2024.11.21