Matplotlib으로 산점도(Scatter plot) 그리기

산점도는 두 연속형변수의 상관관계를 나타낼 수 있는 유용한 시각화 도구입니다. 이번 포스팅에서는 시각화 라이브러리 Matplotlib의 기본적인 사용법에 이어, 산점도를 그릴 수 있는 scatter함수와 함수의 다양한 옵션을 사용하여 시각화를 진행해보도록 하겠습니다.

예제 데이터 구성하기

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

먼저 위와 같이 예제 데이터를 준비합니다. 예제 데이터는 우리 홈페이지를 방문한 고객의 행동 데이터를 위와 같이 가정하였습니다. 클릭수 여러 칼럼들 중 '구매'칼럼에서의 0은 비구매, 1은 구매를 나타냅니다.

기본적인 산점도의 시각화

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

먼저 방문횟수와 클릭수간의 상관관계를 파악하기 위해 산점도를 그릴 수 있습니다. Matpotlib을 사용하여 산점도를 그릴 때의 기본 코드는 위와 같습니다. scatter 함수에 두 개의 데이터를 넘겨주면 각각 x축과 y축의 데이터로 인식합니다. 그래서 (2,15), (3,18), (5,25), (7,35)의 순서쌍이 만들어지게 되고, 해당 좌표에 마커(Marker)가 출력됩니다.

여러가지 매개변수 사용하여 산점도 그리기

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

마커의 색상을 변경하고 싶다면 c 매개변수를 사용하고, 색상을 문자열(혹은 헥스코드)로 전달하면 됩니다.

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

c 매개변수에 변수를 입력해서 사용할 수 있습니다. 이 때에는 위에서 사용된 c 매개변수의 용법과 다릅니다.

위와 같이 코딩했다면 x축, y축의 첫 번째, 세 번째 순서쌍이 구매칼럼의 첫 번째, 세 번째 데이터인 0에 대응되고, 두 번째, 네 번째 순서쌍이 구매칼럼의 두 번째, 네 번째 데이터인 1에 대응됩니다. 그 결과 동일한 값에 해당하는 값은 동일한 색상으로 출력됩니다. c 매개변수를 이와 같은 방법으로 사용하면, 산점도에서 상관관계를 확인할 수 있을 뿐만 아니라 데이터별 카테고리도 시각적으로 확인할 수 있습니다.

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

c 매개변수에 데이터의 카테고리가 지정되었다면, 마커의 색상을 변경하기 위하여 미리 정의된 색상표(colormap)를 이용하면 됩니다. 색상표는 cmap 매개변수에 입력하여 사용할 수 있습니다.

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

edgecolors 매개변수는 각 마커의 테두리 색을 결정합니다.

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

linewidth 매개변수는 마커의 테두리 굵기를 결정합니다.

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

colormap은 색상별로 정보를 전달하기 때문에 각각의 색이 어떠한 정보에 대응하는지 시각적으로 파악할 수 있어야 합니다. plt.colorbar를 입력하면 위 결과화면처럼 colorbar(색상막대)를 추가하여 색상에 따른 정보를 파악할 수 있습니다.

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

colorbar에는 위 코드처럼 레이블도 추가할 수 있습니다.

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

s 매개변수는 마커의 size를 결정합니다. 입력된 값은 pixel단위가 됩니다.

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

s 매개변수에는 위 예시처럼 변수를 입력할 수 있습니다. 위 예시에는 '체류시간'칼럼이 입력되었기 때문에 각 마커의 크기가 체류시간을 반영하여 표현됩니다.

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

alpha값을 전달해서 마커의 투명도를 결정할 수 있습니다. 현재의 산점도에서는 데이터가 많지 않지만, 데이터가 굉장히 많아질 경우 마커가 대부분 겹치게 됩니다. 이 때 alpha 매개변수를 통해서 그래프의 형태를 알아보기 쉽게 만들 수 있습니다.

Iris 데이터로 산점도 그려보기

위의 내용들을 모두 종합하여, 유명한 데이터셋 Iris 데이터로 산점도를 그려볼 수 있습니다. 아래의 코드를 참고할 때에는 특히 scatter 함수의 매개변수와 그 결과에 주목하시기 바랍니다.

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

1 thought on “Matplotlib으로 산점도(Scatter plot) 그리기”

  1. 이거.. 쭉 보다 보니까
    파이썬이 더 끌리네요…
    자주와서 질문도 하고 포스팅 건의도 자주 드리겠습니다.
    현업에 종사하면서 데이터만질일이 많은데 큰힘얻구가요 ~

    응답

Leave a Comment