Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Seaborn으로 연결선이 있는 다중 계열 산점도 그리기 완벽 가이드

데이터 시각화에서 산점도(scatter plot)에 연결선을 추가하면 데이터 포인트 간의 관계와 흐름을 한눈에 파악할 수 있습니다. Python의 seaborn 라이브러리를 사용하면 여러 계열(multiple series)로 구성된 산점도를 연결된 선과 함께 손쉽게 그릴 수 있습니다. 이 글에서는 FacetGrid를 활용해 단계별로 구현하는 방법을 소개합니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.

  • Pandas 데이터프레임을 생성합니다. 데이터프레임은 2차원이며 크기가 가변적이고, 서로 다른 타입의 열을 담을 수 있는 표 형태의 자료구조입니다.

  • sns.FacetGrid를 사용하여 조건부 관계를 시각화하기 위한 멀티 플롯 그리드를 만듭니다.

  • map() 메서드를 통해 각 면(facet)의 데이터 하위 집합에 플로팅 함수를 적용합니다.

  • x, y 데이터 포인트로 산점도를 그리고, 같은 좌표값으로 선 그래프를 겹쳐 그려 점들을 연결합니다.

  • plt.show() 메서드를 호출하여 최종 그림을 화면에 표시합니다.

예제 코드

import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({"x": [4, 6, 7, 1, 8], "y": [1, 5, 7, 8, 1]})

g = sns.FacetGrid(df, hue="x", height=3.5)
g.map(plt.scatter, "x", "y")
g.map(plt.plot, "x", "y")

plt.show()

코드 설명

위 예제에서는 x와 y 두 개의 열을 가진 간단한 데이터프레임을 생성한 후, FacetGridhue="x" 옵션을 지정하여 x 값에 따라 색상이 구분되도록 설정했습니다. 이어서 g.map(plt.scatter, ...)로 산점도를 먼저 그리고, g.map(plt.plot, ...)으로 동일한 데이터에 선을 이어 붙여 점들이 연결된 형태의 그래프를 완성합니다.

실행 결과

위 코드를 실행하면 데이터 포인트가 계열별 색상으로 표시되고, 각 점이 순서대로 선으로 연결된 다중 계열 산점도가 출력됩니다.

Seaborn으로 연결선이 있는 다중 계열 산점도 그리기 완벽 가이드

마무리

이처럼 seaborn의 FacetGrid와 matplotlib의 scatter, plot 함수를 조합하면 복잡한 설정 없이도 연결선이 있는 다중 계열 산점도를 빠르게 만들 수 있습니다. 데이터의 개수나 계열이 많아질 경우에도 동일한 패턴을 적용하면 되므로, 시계열 데이터나 범주형 비교 분석에 유용하게 활용할 수 있습니다.