ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • pandas와 한 몸 전처리의 마지막 matplotlib
    pandas 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는 그래프를 FigureAxes라는 두 가지 기본 요소로 구성합니다.

    • 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를 함께 사용하면 거의 모든 데이터 분석 작업을 완벽히 처리할 수 있습니다. 시작이 어렵게 느껴질 수 있지만, 몇 가지 기본 함수만 익혀도 여러분만의 시각화를 만들 수 있습니다!

Designed by Tistory.