파이썬(python) 시각화 Matplotlib 기초 (1)

데이터기반의사결정을 위해서는 시각화가 필수적입니다. 특히 다루는 데이터의 양이 크면 클수록 시각화의 중요성은 더욱 부각됩니다. 파이썬에서 사용할 수 있는 여러 시각화 라이브러리 중에서 Matplotlib은 파이썬에서 가장 널리 사용되는 시각화 라이브러리이며 데이터를 다루고자 하는 니즈가 있다면 필수적으로 사용방법을 익혀야 합니다.

John D. Hunter (1968.08.01 ~ 2012.08.28)

존 헌터는 Matplotlib 시각화 라이브러리의 창시자입니다. 그는 신경생물학을 전공하였으며 평소 연구를 하며 자주 사용했던 MATLAB에서 영감을 얻어 Matplotlib을 개발하였습니다. 매년 열리는 SciPy 컨퍼런스에는 그를 기리는 plotting contest가 열리고 있습니다. 아래는 존 헌터가 직접 작성한 Maptlotlib의 소개입니다.
  • https://matplotlib.org/users/history.html
  • Matplotlib 사용하기

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    Matplotlib(맷플롯립)의 서브모듈 pyplot은 다양한 시각화 관련 기능을 내장하고 있습니다. 그리고 as(Alias , 별칭)으로 pyplot을 불러올 때에는 보통 pyplot의 p,l,t를 따서 'plt'라는 약어를 사용합니다.

    차트별 기본코드 알아보기

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    이번 강의에서는 위와 같이 간단한 데이터를 사용하여 시각화 실습을 진행해보겠습니다.

    선 그래프(Line chart)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.plot(x,y)은 선 그래프를 그려 줍니다. 첫 번째 전달인자는 x축을, 두 번째 전달인자는 y축을 정의합니다. 그리고 plt.show()를 추가로 입력해서 입력된 그래프를 출력합니다. 이와 같은 두 줄의 코딩이 Matplotlib을 사용한 시각화의 가장 기본적인 형태입니다. Matplotlib에서 다른 형태의 그래프를 그리거나, 시각적요소를 추가할 경우에는 위에서 소개한 두 줄의 코딩을 변형하거나 추가하는 형태로 진행됩니다.

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    선 그래프를 그릴 때 위와 같이 데이터를 하나만 전달하면 해당 데이터를 기준으로 x축의 눈금을 자동으로 생성해서 그래프를 그려줍니다.

    막대 그래프(Bar chart)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.bar는 막대 그래프를 그려줍니다. plt.plot를 입력하여 선 그래프를 그린 것과 마찬가지로 첫 번째 전달인자는 x축을, 두 번째 전달인자는 y축을 정의하여 막대그래프를 그리게 됩니다.

    가로막대 그래프(Horizontal bar chart)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.barh는 막대 그래프를 그려줍니다. 위에서 plt.bar를 입력하여 막대그래프를 그렸는데, 가로막대 그래프는 h(horizontal)를 덧붙인 barh를 입력하여 가로막대 그래프를 그리게 됩니다.

    히스토그램(Histogram)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.hist는 히스토그램을 그려줍니다. 함수에 하나의 데이터를 전달하면 해당 데이터를 기반으로 계급구간을 자동으로 생성하여 x축에 표시하고, 각 계급구간에 해당하는 데이터의 빈도를 y축에 표시합니다. 하지만 결과 그래프에서 볼 수 있듯, 함수가 계급구간을 명확하게 나누어 주지 않기 때문에 보통의 경우 아래와 같은 매개변수를 사용합니다.

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    bins는 계급구간을 나타냅니다. bins에 range함수를 전달하여 계급구간을 임의로 설정할 수 있습니다. rwidth는 각 막대의 가로길이의 상대비율(최대값=1)을 나타냅니다. 1을 입력하면 각각의 막대가 붙어서 출력되기 때문에, 예시에서처럼 0.8 정도의 값을 넘겨주면 적절한 모양의 히스토그램을 출력할 수 있습니다.

    산점도(Scatter Plot)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.scatter는 산점도를 그려줍니다. 산점도를 통해서 입력된 데이터간의 관계를 살펴볼 수 있습니다.

    상자 수염 차트(box and whisker plot)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.boxplot는 상자 수염 차트를 그려줍니다. 함수에 하나의 데이터를 전달하면 전달된 데이터를 바탕으로 차트를 그려줍니다.

    원 그래프(Pie chart)

    powered by Advanced iFrame free. Get the Pro version on CodeCanyon.

    plt.pie는 원 그래프를 그려줍니다. 하나의 데이터를 전달하면 원 그래프를 그려주는데, 이 때 각 부분이 어떤 데이터를 나타내는지 표기하기 위하여 위와 같이 label 매개변수를 추가해 줍니다.

    Leave a Comment