ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 기초 : 데이터 시각화 (Data Visualization)
    BootCamp/FastCampus x Upstage AI Lab 6기 2024. 11. 22. 17:51

    Matplotlib 설치 및 사용법

    • Matplotlib 정의: matplotlib은 파이썬에서 데이터를 차트나 플롯으로 시각화하는 라이브러리이다.
    • 모듈 사용: matplotlib.pyplot 모듈의 함수를 이용하여 간편하게 그래프를 만들고 변화를 줄 수 있다.
    • 설치 방법: Matplotlib을 설치하기 위해서는 pip install matplotlib 명령어를 사용해야 한다.
    • 사용 예시: Matplotlib을 사용하기 위해서는 import matplotlib.pyplot as plt를 통해 모듈을 불러와야 한다.
    • 참고 자료: Matplotlib 공식 문서

    Matplotlib 그래프 그리기

    • 리스트 입력: 한 개의 숫자 리스트 형태로 값을 입력하면 y값으로 인식된다.
    • x값 기본 설정: x값은 기본적으로 [0, 1, 2, 3]으로 설정된다.
    • 다양한 데이터 형식: 파이썬 튜플, 넘파이 배열 형태도 가능하다.
    • 그래프 표시: plt.show() 함수는 그래프를 화면에 나타나도록 한다.
    import matplotlib.pyplot as plt
    
    # 데이터 준비
    x = [1, 2, 3, 4, 5]
    y = [2, 4, 6, 8, 10]
    
    # 선 그래프 그리기
    plt.plot(x, y, label='Line', color='blue', linestyle='-', marker='o')
    plt.title("Simple Line Plot")
    plt.xlabel("X-axis")
    plt.ylabel("Y-axis")
    plt.legend()
    plt.show()

    Matplotlib 축 레이블 및 범례 설정

    • 축 레이블 설정: xlabel() 함수를 사용하여 그래프의 x축에 대한 레이블을 표시할 수 있다.
    • y축 레이블 설정: ylabel() 함수를 사용하여 그래프의 y축에 대한 레이블을 표시할 수 있다.
    • 범례 설정: legend() 함수를 사용하여 그래프에 범례를 표시할 수 있다.
    • label 파라미터: plot() 함수에 label 파라미터 값을 삽입하여 범례를 설정할 수 있다.
    # 데이터 준비
    x = [1, 2, 3, 4, 5]
    y1 = [1, 4, 9, 16, 25]
    y2 = [25, 20, 15, 10, 5]
    
    # 그래프 그리기
    plt.plot(x, y1, label='y = x^2', color='red')
    plt.plot(x, y2, label='y = 30 - x', color='green')
    
    # 레이블 추가
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    plt.title('Multiple Lines Example')
    
    # 범례 표시
    plt.legend()
    
    # 그래프 표시
    plt.show()

    Matplotlib 선 종류 및 마커 설정

    • 선 종류 설정: plot() 함수의 포맷 문자열을 사용하여 선의 종류를 설정할 수 있다.
    • 선 종류 예시:
    • '-' (Solid)
    • '--' (Dashed)
    • ':' (Dotted)
    • '-.' (Dash-dot)
    • 마커 설정: 기본적으로 실선 마커가 사용되며, plot() 함수의 포맷 문자열을 사용하여 마커를 지정할 수 있다.
      • 'ro'는 빨간색 원형 마커를 의미한다.
      • 'k^'는 검정색 삼각형 마커를 의미한다.
      • 커스터마이즈: 튜플을 사용하여 선의 종류를 커스터마이즈할 수 있다.

    Matplotlib 색상 및 타이틀 설정

    • 색상 설정: plot() 함수의 포맷 문자열을 사용하여 색상을 지정할 수 있다.
    • 타이틀 설정: title() 함수를 이용하여 그래프의 타이틀을 설정할 수 있다.
    • 위치 설정: title() 함수의 loc 파라미터 값을 사용하여 타이틀의 위치를 설정할 수 있다.
    • 간격 설정: title() 함수의 pad 파라미터 값을 사용하여 타이틀과 그래프 간의 간격을 설정할 수 있다.
    import matplotlib.pyplot as plt
    import numpy as np
    
    # 데이터 준비
    x = np.linspace(0, 10, 100)
    y1 = np.sin(x)
    y2 = np.cos(x)
    
    # 1. 선 종류 설정
    plt.plot(x, y1, 'r-', label='Sine Wave')  # 빨간 실선
    plt.plot(x, y2, 'b--', label='Cosine Wave')  # 파란색 점선
    
    # 2. 마커 설정
    plt.plot(x, y1, 'ro', label='Sine Wave with Circle Markers')  # 빨간 원형 마커
    plt.plot(x, y2, 'k^', label='Cosine Wave with Triangle Markers')  # 검정색 삼각형 마커
    
    # 3. 색상 설정
    plt.plot(x, y1, color='green', label='Sine Wave with Green Line')  # 초록색 선
    plt.plot(x, y2, color='purple', label='Cosine Wave with Purple Line')  # 보라색 선
    
    # 4. 타이틀 및 축 레이블 설정
    plt.title('Sine and Cosine Waves', loc='center', pad=20)  # 타이틀 위치와 간격 설정
    plt.xlabel('X-axis')
    plt.ylabel('Y-axis')
    
    # 5. 범례 표시
    plt.legend()
    
    # 그래프 표시
    plt.show()

    Seaborn 라이브러리 소개

    • Seaborn 정의: seaborn은 matplotlib 기반의 시각화 라이브러리이다.
    • 고급 인터페이스: 유익한 통계 기반 그래픽을 그리기 위한 고급 인터페이스를 제공한다.
    • 패키지 설치: Seaborn 패키지가 없는 경우, 설치 명령어는 pip install seaborn이다.
    • 데이터 시각화 확장: Matplotlib으로 시각화 기본기를 다졌다면 이제 Seaborn을 통해 고급 인터페이스를 구현할 수 있다.

    Seaborn 데이터 불러오기

    • 데이터 불러오기: seaborn 라이브러리에서 제공하는 titanic 데이터를 불러온다.
    • 함수 사용: load_dataset() 함수를 이용하여 데이터를 불러온다.
    • 내장 데이터 사이트: seaborn 내장 데이터는 GitHub에서 확인할 수 있다.
    • 데이터 확인: .head() 메서드를 사용하여 데이터의 상단 5개 행을 출력할 수 있다.

    Seaborn 산점도 및 히스토그램

    • 산점도 시각화: regplot() 함수는 선형 회귀선이 있는 산점도를 시각화하는 데 사용된다.
    • 파라미터 설명:
    • x : x축 변수
    • y : y축 변수
    • data : 데이터셋
    • fit_reg: 선형 회귀선 표시 여부
    # 3. Seaborn 산점도 및 히스토그램
    tips = sns.load_dataset('tips')
    
    # 산점도
    sns.regplot(x='total_bill', y='tip', data=tips, scatter_kws={'color': 'blue'}, line_kws={'color': 'red'})
    plt.title("Total Bill vs Tip (Regression Plot)")
    plt.show()
    
    # 히스토그램
    sns.histplot(tips['total_bill'], bins=20, kde=True)
    plt.title("Total Bill Distribution")
    plt.show()

    Seaborn 범주형 데이터 시각화

    • stripplot() 함수: 데이터 포인트가 중복되어 범주별 분포를 시각화하는 데 사용된다.
    • swarmplot() 함수: 데이터의 분산까지 고려하여 데이터 포인트가 서로 중복되지 않도록 시각화한다.
    • hue 파라미터: 특정 열 데이터로 색상을 구분하여 출력할 수 있다.
    • 시각화의 중요성: 데이터 시각화는 아는 만큼 표현할 수 있는 것이며, 다양한 그래프를 통해 정보를 효과적으로 전달 할 수 있다.
    # 4. Seaborn 범주형 데이터 시각화
    plt.figure(figsize=(10, 5))
    
    # Stripplot
    plt.subplot(1, 2, 1)
    sns.stripplot(x='day', y='total_bill', data=tips, jitter=True, hue='sex', dodge=True)
    plt.title("Stripplot")
    
    # Swarmplot
    plt.subplot(1, 2, 2)
    sns.swarmplot(x='day', y='total_bill', data=tips, hue='sex')
    plt.title("Swarmplot")
    
    plt.tight_layout()
    plt.show()

    Seaborn 조인트 그래프 및 관계 그래프

    • jointplot() 함수: 산점도를 기본으로 표시하며, x-y축에 각 변수에 대한 히스토그램을 동시에 시각화한다.
    • kind 파라미터:
    • kind='reg': 선형 회귀선 추가
    • kind='hex': 육각 산점도 추가
    • kind='kde': 커널 밀집 그래프 추가
    • pairplot() 함수: 인자로 전달된 데이터프레임의 열(변수)을 두 개씩 짝지을 수 있는 모든 조합에 대해 표현한다.
    • 그리드 생성: 같은 변수끼리 짝을 이루는 대각선 방향으로는 히스토그램을 시각화하고, 서로 다른 변수 간에는 산점도를 시각화한다.
    sns.pairplot(tips)
    plt.suptitle("Pairplot", y=1.02)
    plt.show()

Designed by Tistory.