본문 바로가기
공부 목록/IT & 프로그래밍

파이썬에서 등고선을 그리는 메서드 contour() 함수 정리

by 독학박사 2023. 5. 22.

목차


     데이터의 가시화하는 데는 수많은 방법들이 존재합니다. 각각의 방법은 데이터 분석의 특색에 맞춰 사용되어야 합니다. 데이터상의 같은 값으로 연결된 선을 등치선이라 하는데, 이를 만들어 주는 matplotlib의 메서드가 contour()입니다. 오늘은 contour()의 사용법과 해당 메서드를 이용한 멋진 등고선을 그려볼까 합니다.

     

     

    등고선을 그리는 contour() 함수
    등고선을 그리는 contour() 함수

     

    1. contour()는 언제 사용하는가?

     plt.contour() 함수는 Matplotlib 라이브러리에서 제공되는 함수로서, 2차원 등고선을 그리는 데 사용됩니다. 이 함수는 다음과 같은 경우에 유용합니다.

     

    1. 함수나 데이터의 등고선 플롯을 생성하고자 할 때 사용됩니다. 예를 들어, 2차원 함수의 등고선을 그려서 함수의 등치선을 시각화하거나, 실제 데이터의 등치선을 표현하는 데 사용될 수 있습니다.

    2. 데이터의 등치선을 시각화하고자 할 때 사용됩니다. 등고선을 사용하면 데이터의 등치선 패턴을 시각적으로 파악할 수 있으며, 데이터의 등고선은 등치선이 교차하는 지점에서 데이터의 변화를 표현하는데 도움이 됩니다.

     

    plt.contour() 함수는 다양한 매개변수를 가지고 있어 다양한 등고선 플롯을 생성할 수 있습니다. 예를 들어, 등고선 간격, 색상, 라인 스타일 등을 지정할 수 있습니다. 이를 통해 원하는 시각화 결과를 얻을 수 있습니다.

     

     

    2. contour()의 기본 사용과 인자 설명

    plt.contour() 메서드의 기본 사용 포맷과 인자들에 대한 설명은 아래와 같이 정리하였습니다.

     

    matplotlib.pyplot.contour(X, Y, Z, levels=None, **kwargs)

     

    X, Y: 등고선을 그릴 그리드의 x 및 y 좌표입니다. 일반적으로 numpy.meshgrid() 함수를 사용하여 생성됩니다.

    Z: x 및 y 좌표에 대한 함숫값 또는 데이터 배열입니다. 이 값들에 대한 등고선이 그려집니다.

    levels: 선택적 매개변수로, 등고선의 수준 또는 값의 목록을 지정합니다. 기본값은 None이며, 이 경우 자동으로 선택된 등고선 수준이 사용됩니다.

    **kwargs: 추가적인 매개변수를 지정할 수 있는 키워드 인자입니다. 이를 통해 등고선의 색상, 라인 스타일, 라벨 등을 설정할 수 있습니다.

     

     

    3. contour()를 이용한 Himmelblau 함수 그려보기

    다음 예제코드를 이용하여 등고선을 그려보도록 하겠습니다.

     

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 등고선을 그릴 그리드 생성
    x = np.linspace(-5, 5, 100)
    y = np.linspace(-5, 5, 100)
    X, Y = np.meshgrid(x, y)
    
    # 함수 값 계산 (예시로 Himmelblau 함수)
    Z = (X**2 + Y - 11)**2 + (X + Y**2 - 7)**2
    
    # 등고선 그리기
    levels = [10, 30, 50, 100, 150, 200, 300]  # 특정 등고선 수준 지정
    contour = plt.contour(X, Y, Z, levels=levels, cmap='coolwarm')
    
    # 등고선에 라벨 추가
    plt.clabel(contour, inline=True, fontsize=8)
    
    # 컬러바 추가
    plt.colorbar()
    
    # 그래프 타이틀 설정
    plt.title("Himmelblau Function")
    
    # 그래프 표시
    plt.show()

     

    contour()를 이용한 Himmelblau 함수 곡선
    contour()를 이용한 Himmelblau 함수 곡선

     

    위의 예제 코드는 Himmelblau 함수라는 복잡한 함수의 등고선을 그리는 예시입니다. 등고선의 수준은 levels 리스트로 지정되었습니다. 또한 cmap 매개변수를 사용하여 등고선의 컬러맵을 설정했습니다.

     

    plt.clabel() 함수를 사용하여 등고선 위에 라벨을 추가하고, plt.colorbar() 함수로 컬러바를 표시했습니다. 마지막으로 plt.title() 함수로 그래프의 타이틀을 설정하고, plt.show() 함수를 호출하여 그래프를 표시했습니다. 이 예제 코드를 실행하면 Himmelblau 함수의 등고선이 색상과 함께 그려진 그래프를 확인할 수 있습니다.

     

     

    4. 마치며

     matplotlib의 pyplot은 다양한 그래프를 그릴 수 있는 메서드들을 제공하고 있습니다. 오늘은 등고선을 가시화할 수 있는 contour()에 대해 어떻게 활용할 수 있는지에 대해 정리해 보았습니다. 예제 코드의 X, Y, Z 값들을 잘 응용하면 사용자가 꼭 필요한 등고선을 그려낼 수 있을 겁니다.

    댓글