Python의 Matplotlib 소개

Matplotlib는 기계 학습 전문가가 주로 정적 및 대화형 시각화를 만드는 데 사용하는 Python 플로팅 라이브러리입니다.

매트플롯립이란?

Mathplotlib는 2003년 John D. Hunter가 만든 것으로 2021년 5월 8일에 출시되었으며 현재 버전은 3.4.2입니다.

이 라이브러리는 주로 Python으로 작성되었으며 나머지는 C Objective와 JavaScript로 작성되어 플랫폼과 호환됩니다.

Matplotlib는 Python 수치 확장인 NumPy를 사용합니다. NumPy로 확장하면 오픈 소스 대안으로 실행 가능성이 추가되고 MATLAB보다 더 선호됩니다.

Python GUI 응용 프로그램의 경우 Matplotlib에서는 함께 제공되는 객체 지향 API를 사용하여 정적 플롯을 그릴 수 있습니다.

사용자는 작성된 Python 코드 몇 줄만 사용하여 산점도, 히스토그램, 막대 차트, 파이 차트, 선 플롯 및 상자 플롯을 비롯한 다양한 플롯을 사용하여 데이터를 시각화할 수 있습니다.

Matplotlib를 사용하여 Python 셸, Jupyter 노트북,
Jupyter 랩과 Pycharm 또는 Anaconda를 사용하고 다양한 플랫폼에서 Flask 및 Django와 같은 웹 애플리케이션 서버를 사용합니다.

MATLAB과 마찬가지로 글꼴, 선, 색상 및 스타일 측면에서 플롯을 광범위하게 제어할 수 있습니다.

Python에서 Matplotib 라이브러리를 간략하게 소개한 후 시스템에서 설정하는 방법을 살펴보겠습니다.

Matplotlib 환경 설정

다른 Python 패키지 및 라이브러리와 마찬가지로 pip 패키지 관리자를 사용하여 모든 운영 체제에 미리 컴파일된 Matplotlib 라이브러리와 해당 패키지를 설치할 수 있습니다.

물론 먼저 시스템에 Python과 pip 패키지를 설치해야 합니다.

다음 명령은 Python 및 pip 버전을 표시하여 이러한 도구가 이미 설치되어 있는지 확인합니다.

파이썬이 설치되어 있는지 확인

Python --version

pip가 설치되어 있는지 확인

pip -V

Mathplotlib 설치

아래 명령은 Python 패키지 색인(PyPI)에서 Matplotlib 패키지를 설치합니다.

python -m pip install matplotlib

이 명령은 Matplotlib의 관련 패키지를 다운로드하여 설치합니다. 설치가 완료된 후 성공적인 설치 메시지가 표시되어야 합니다.

Matplotlib가 성공적으로 설치되었는지 확인하려면 다음 명령을 입력하십시오. 그러면 명령 프롬프트에 Matplotlib의 버전이 표시됩니다.

import matplotlib
matplotlib.__version__

컴파일되지 않은 Matplotlib 패키지를 설치하려는 개발자는 종속성, 설정 스크립트, 구성 파일 및 패치 외에도 시스템의 올바른 컴파일러에 액세스할 수 있어야 합니다.

그러나 이 특정 컴파일되지 않은 Matplolib 설치는 특히 Matplotlib 초보자에게 복잡할 수 있습니다. 따라서 한 줄 명령을 사용하여 몇 초 만에 라이브러리를 설치하는 것은 어떨까요?🤔

Matplotlib를 설치한 후 패키지를 환경으로 가져와 해당 유틸리티에 액세스합니다.

Matplotlib 플로팅 옵션

Matplotlib는 데이터를 시각화하기 위한 다양한 플로팅 옵션을 제공합니다. 또한 사용자가 플롯을 조작하는 데 사용할 수 있는 다양한 테마, 색상 및 팔레트 옵션을 제공하여 플롯을 사용자 정의할 수 있습니다.

이러한 플로팅 옵션에는 다음이 포함됩니다.

#1. 막대 그래프

막대 그래프로 잘 알려진 막대 도표는 동일한 범주 내에서 값의 양적 비교를 시각화하는 데 적합한 옵션입니다.

  기업용 안면 인식에 관한 모든 것

Matplotlib는 길이와 높이가 비례 값을 나타내는 직사각형 막대를 사용하여 이 플롯을 나타냅니다. 막대는 수평 또는 수직일 수 있습니다.

Matplotlib는 plt.bar() 함수를 사용하여 막대 플롯을 만듭니다.

또한 이 플롯을 조작하기 위해 더 많은 기능을 사용할 수 있습니다. 예를 들어, plt.xlabel() 및 plt.ylabel() 함수는 각각 그래프의 x 및 y 축에 레이블을 지정합니다.

plt.title() 함수를 사용하면 플롯에 제목을 지정할 수도 있고 plt.savefig() 함수는 플롯을 저장합니다. 가장 중요한 plot.show() 함수는 플롯을 표시합니다.

#2. 파이 플롯

파이 차트라고 하는 원형 통계 플롯을 사용하여 동일한 범주 내에서 항목의 비례 분포를 시각화할 수 있습니다.

파이 플롯은 데이터를 백분율 형식으로 표시합니다. 차트의 전체 영역은 전체 데이터의 백분율에 해당하는 반면 개별 원형 조각은 데이터 백분율의 섹션을 나타냅니다.

Matplotlib는 원형 차트의 매개변수를 그리고 조정하는 plt.pie() 함수를 사용합니다.
파이 차트 값을 소수점 이하 1자리까지 인쇄하는 autopct와 같은 매개변수는 파이 플롯을 그리는 데 유용합니다.

비즈니스 조직은 운영, 판매 또는 리소스와 같은 관련 정보를 표시하는 데 유용한 원형 차트를 찾습니다.

#삼. 히스토그램

히스토그램은 숫자 데이터 분포를 표시합니다. 연속 간격을 사용하여 데이터를 개별 섹션으로 나눕니다.

히스토그램과 막대 그림의 주요 차이점은 처리하는 데이터 유형입니다. 히스토그램이 연속형 데이터 유형을 처리하는 반면 막대 그림은 범주형 데이터를 대신 처리합니다.

Matplotlib는 히스토그램을 생성하기 위해 임의의 또는 정의된 값의 배열을 사용하는 hist() 함수를 사용합니다.

#4. 선 플롯

이 플롯은 X와 Y를 기준으로 수치 및 범주로 정의하는 두 데이터 값 간의 관계를 표시하는 데 유용합니다.

선 그림은 일정 기간 동안 데이터 값의 변화를 추적하는 데 중요합니다.

#5. 산점도

산점도는 데이터의 변수 간의 상관 관계를 포함하여 관계를 나타냅니다. 또한 이상값을 식별하는 데 유용합니다.

산점도는 점을 사용하여 데이터 변수의 관계와 한 변수의 변경이 다른 변수에 미치는 영향을 나타냅니다.

Matplotlib에서 플롯을 만드는 방법

Matplotlib는 다른 기능을 사용하여 다른 플롯을 만듭니다. 또한 플롯을 생성하는 데 아주 적은 수의 코드 라인을 사용합니다.

아래에서는 Matplotlib에서 다양한 기능을 사용하여 다양한 플롯 옵션을 만드는 방법을 보여줍니다.

#1. Matplotlib의 막대 플롯

위에서 설명한 대로 막대 그림은 한 축의 범주와 다른 축의 범주에 해당하는 값의 비교를 나타내는 막대와 축을 사용하여 데이터 범주를 표시합니다.

Matplotlib의 bar() 함수는 아래와 같이 막대의 레이아웃을 설명하기 위해 다른 인수 레이아웃을 사용합니다.

plt.bar(x, y, height, width, bottom, align)

x 및 y 매개변수는 플롯에 있는 막대의 x 좌표 값과 y 좌표 값을 나타냅니다. width 매개변수는 막대의 너비를 나타내고 height 매개변수는 막대의 높이를 나타냅니다.

예를 들어 x라는 동물 보호소에 있는 개와 고양이의 수를 표현해 보겠습니다.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

산출:

Mathplotlib의 막대 플롯 출력

위의 예에서와 같이 color 속성을 사용하여 막대의 색상을 추가로 지정할 수 있습니다. 또한 plt.xlabel 및 p.ylabel은 각각 x 및 y 축의 이름을 지정하는 반면 plt.title은 플롯의 이름을 지정합니다.

  뉴스레터를 보내기 전에 사용할 최고의 이메일 제목 줄 테스터 8가지

#2. 파이 플롯을 만드는 방법

Matplotlib는 pyplot 모듈과 함께 제공되는 pie() 함수를 사용하여 파이 차트를 그립니다.
함수는 배열 형식으로 플롯할 데이터를 나타냅니다.

통사론:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

colors 매개변수는 파이 조각의 색상을 설정합니다. 값 배열을 사용하여 각 슬라이스의 색상을 지정할 수 있습니다.

파이의 모든 조각에 대한 세부 정보를 추가로 포함하기 위해 autopct 인수는 Python의 문자열 형식 표기법을 사용하여 각 조각이 나타내는 숫자 백분율을 추가합니다. 인수로 폭발은 0.1부터 시작하는 값 배열을 받아 파이 중심에서 슬라이스의 거리를 정의합니다.

특정 프로젝트에 할당된 리소스를 백분율로 표시하는 파이 차트를 그려 보겠습니다.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

산출:

Mathplotlib의 파이 플롯 출력

위의 플롯은 각각 w, x, y 및 z로 레이블이 지정된 4개의 조각이 있는 원형 차트를 표시합니다. 분해 값은 조각이 파이의 중심에서 얼마나 멀리 배치될지를 정의합니다.

위의 차트에서 x는 폭발 값이 나머지보다 크기 때문에 더 멀리 있습니다. shadow 속성은 이미지에서와 같이 원형 플롯에 그림자를 추가하는 반면 autopct는 모든 슬라이스가 나타내는 전체 원형에 대한 상대 백분율을 설정합니다.

#삼. 히스토그램 플롯 생성

히스토그램을 사용하면 일련의 간격을 사용하여 x축에서 주어진 값의 범위를 나타냅니다.
반면에 y축은 주파수 정보를 나타냅니다.

다른 플롯과 달리 Matplotlib에서 히스토그램을 플롯하려면 플롯을 생성하기 위해 따라야 하는 사전 정의된 단계가 필요합니다.

이러한 단계에는 다음이 포함됩니다.

  • 가지고 있는 데이터 값 집합에서 범위의 빈을 만듭니다. 임의의 값을 생성할 수 있는 np.random.normal() 함수를 사용할 수 있습니다.
  • 일련의 간격을 사용하여 값을 값 범위로 배포합니다.
  • 모든 특정 간격에 속하는 값을 계산합니다.
  • 이제 matplotlib.pyplot.hist() 함수를 사용하여 히스토그램을 만듭니다.
  • hist() 함수는 다음을 포함한 여러 매개변수를 받습니다.

    x – 배열 시퀀스를 나타냅니다.

    bins – 정수 또는 문자열 시퀀스를 포함할 수 있는 변수의 겹치지 않는 간격을 나타내는 선택적 매개변수입니다.

    range – 빈의 상한 및 하한 범위를 정의합니다.

    align – 이 매개변수는 히스토그램의 정렬을 제어합니다. 왼쪽이든 오른쪽이든 가운데든 상관없습니다.

    color – 막대의 색상을 정의합니다.

    rwidth – 히스토그램 막대의 상대적 너비를 빈의 너비로 설정합니다.

    log – log 매개변수는 히스토그램 축의 로그 스케일을 정의합니다.

    다음 예제에서는 정의된 값을 사용하여 히스토그램을 플로팅합니다.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    산출:

    Mathplotlib의 히스토그램 플롯 출력

    #4. Matplotlib의 선 플롯

    Matplotlib는 구현에 도움이 되는 다양한 기능과 함께 제공되는 pyplot 이라는 하위 라이브러리를 사용합니다.

    우리는 pyplot과 함께 제공되는 일반 함수인 plot() 함수를 사용하여 곡선 플롯 및 다중 선 플롯을 포함하여 선 플롯 및 다른 유형의 선 플롯을 플롯합니다. 이러한 다양한 종류의 플롯을 만드는 것은 y축에 전달하는 값에 따라 다릅니다.

    플로팅할 때 차트를 그리는 matplotlib.pyplot 및 Numpy를 가져옵니다. plot(x,y) 메서드는 x 및 y 인수에 임의의 값을 전달하여 선 플롯을 만듭니다.

      Roku 홈 화면에서 광고를 비활성화할 수 있습니까?

    또한 플롯에 레이블을 지정하는 레이블 변수를 전달할 수 있습니다. title 함수는 플롯의 제목을 추가로 지정하는 반면 xlabel 및 ylabel 함수는 좌표축의 이름을 지정합니다. 마지막으로 show() 함수는 플롯을 표시합니다.

    예를 들어:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    결과:

    Mathplotlib의 선 플롯 출력

    np.linspace 속성은 x 값에 대한 특정 간격에 걸쳐 균일한 간격의 숫자 세트인 플롯을 반환합니다. 이렇게 하면 0과 5 범위의 10개 값 배열이 생성됩니다. y 값은 x의 해당 값을 사용하는 방정식에서 생성됩니다.

    산점도 만들기

    Matplotlib는 scatter() 메서드를 사용하여 이 플롯을 만듭니다.
    이 메서드는 다음 매개변수를 사용합니다.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    x_axis_data 및 y_axis_data 매개변수는 선택 사항일 수 있고 값이 None인 나머지 매개변수와 달리 공백으로 둘 수 없습니다. x_axis_data 인수는 x축에 대한 데이터 배열을 정의하는 반면 y_axis_data는 y축에 대한 데이터 배열을 설정합니다.

    matplotlib의 산점도 예

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    출력은 다음과 같습니다.

    Mathplotlib의 산점도 출력

    matplotlib의 subplot()이란?

    subplot() 함수는 단일 Matplotlib 그림에 여러 플롯을 그리는 데 사용할 수 있습니다. 이를 통해 Figure 내의 여러 플롯을 보고 비교할 수 있습니다.

    이 함수는 세 개의 인수가 있는 튜플을 반환합니다. 행과 열을 각각 첫 번째 및 두 번째 인수로 사용하고 현재 플롯의 인덱스를 세 번째 인수로 사용합니다.

    행과 열은 Matplotlib의 레이아웃을 명확하게 정의합니다.

    따라서 예를 들어 plt.subplot(2, 1, 1)은 2개의 행과 1개의 열로 Matplotlib 그림을 플롯하고 이 플롯이 첫 번째 플롯이 됩니다.

    반면에 plt.subplot(2, 1, 2)는 2개의 행과 1개의 열이 있는 두 번째 플롯을 표시합니다.

    이 두 플롯을 플로팅하면 아래 예와 같이 서로의 상단에 플롯이 생성됩니다.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    위 예제의 출력은 아래 이미지와 같습니다.

    다른 예를 사용하여 subplot 함수를 사용하여 하나의 행과 두 개의 열이 있는 두 개의 그림을 플로팅해 보겠습니다. 그러면 플롯이 나란히 표시됩니다.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    위의 예는 다음 결과를 표시합니다.

    글쎄, 그것은 흥미롭게 상호 작용했습니다. 그렇게 생각하지 않습니까?😃

    마지막 단어

    Matplotlib는 Python에서 널리 사용되는 시각화 라이브러리입니다. 초보자도 쉽게 사용할 수 있는 대화형 기능과 기능으로 인해 Python에서 플로팅하는 데 사용할 수 있는 훨씬 더 나은 도구입니다.

    이 기사에서는 파이 플롯, 막대 플롯, 히스토그램 및 산점도를 포함하여 Matplotlib과 함께 제공되는 함수가 생성할 수 있는 다양한 플롯의 예를 다뤘습니다.

    물론 Python에는 기계 학습 전문가와 데이터 과학자가 시각화를 만드는 데 사용할 수 있는 몇 가지 다른 라이브러리가 있습니다.

    Matplotlib로 만들 수 있는 더 많은 플롯과 플롯을 만드는 데 사용할 함수를 탐색할 수 있습니다.

    즐거운 플로팅!📉📊