본문 바로가기
[업무 지식]/Seaborn

[lmplot] Anscombe’s quartet

by 에디터 윤슬 2024. 11. 8.
import seaborn as sns
sns.set_theme(style="ticks")

# Load the example dataset for Anscombe's quartet
df = sns.load_dataset("anscombe")

 

seaborn

sns.lmplot(
    data = df,
    x = 'x',
    y = 'y',
    col = 'dataset',
    hue = 'dataset',
    col_wrap = 2,
    palette = 'muted',
    ci = None,
    height = 4,
    scatter_kws = {'s': 50, 'alpha': 1}
)

코드 설명

  • 1. sns.lmplot()
    • lmplot()은 산점도와 회귀선을 함께 그리는 함수입니다. 이 함수는 데이터의 두 변수 간의 관계를 시각화하면서, 선형 회귀선을 추가로 표시합니다.
    • lmplot()은 기본적으로 FacetGrid를 사용하여 여러 차원으로 데이터를 나눠서 시각화할 수 있습니다.
  • 2. data=df
    • data: 시각화에 사용할 데이터프레임을 지정합니다. 여기서는 df라는 데이터프레임이 사용됩니다.
    • df는 X축과 Y축에 사용할 변수뿐만 아니라, 여러 범주형 변수를 포함하는 데이터프레임이어야 합니다.
  • 3. x='x', y='y'
    • x='x': X축에 사용할 데이터를 지정합니다. 여기서는 df['x'] 열이 X축에 사용됩니다.
    • y='y': Y축에 사용할 데이터를 지정합니다. 여기서는 df['y'] 열이 Y축에 사용됩니다.즉, X와 Y 변수 간의 관계를 나타내는 산점도가 그려지고, 그 위에 선형 회귀선이 추가됩니다.
  • 4. col='dataset', hue='dataset'
    • col='dataset': 데이터프레임의 특정 열(dataset)을 기준으로 여러 개의 그래프를 나눠서 그립니다. 각 범주마다 별도의 플롯이 생성됩니다.
    • 예를 들어, dataset 열이 'A', 'B', 'C' 세 가지 범주로 이루어져 있으면, 각 범주에 대해 별도의 산점도와 회귀선이 그려집니다.
    • hue='dataset': 산점도에서 점의 색상을 dataset 열의 값에 따라 다르게 설정합니다. 즉, 같은 플롯 내에서도 각 범주별로 다른 색상을 사용하여 구분합니다.
  • 5. col_wrap=2
    • col_wrap=2: 생성된 플롯들을 한 줄에 두 개씩 배치하도록 지정합니다.
    • 만약 dataset 열에 세 가지 범주가 있다면, 첫 번째 줄에는 두 개의 플롯이, 두 번째 줄에는 하나의 플롯이 배치됩니다.
  • 6. palette='muted'
    • palette='muted': 색상 팔레트를 설정합니다. Seaborn에서 제공하는 기본 팔레트 중 하나인 'muted' 팔레트를 사용하여 각 범주의 색상을 조정합니다.
  • 7. ci=None
    • ci=None: 회귀선 주위의 신뢰 구간(confidence interval)을 표시하지 않도록 설정합니다.
    • 기본적으로 Seaborn은 회귀선 주위에 신뢰 구간을 표시하지만, 여기서는 이를 생략합니다.
  • 8. height=4
    • height=4: 각 플롯의 높이를 설정합니다(단위는 인치). 여기서는 각각의 플롯 높이가 4인치로 설정됩니다.
  • 9. scatter_kws={'s': 50, 'alpha': 1}
    • scatter_kws: 산점도의 점에 대한 추가적인 스타일 옵션을 지정하는 파라미터입니다.
    • 's': 50: 점의 크기를 설정합니다 (50은 점 크기를 의미).
    • 'alpha': 1: 점의 투명도를 설정합니다 (1은 완전히 불투명한 상태).

 

결론
  • 위 시각화는 다음과 같은 경우 유용하게 사용할 수 있습니다:
    • 두 연속형 변수(X와 Y) 간의 관계를 분석하고자 할 때.
    • 특정 범주형 변수(예: 지역 또는 제품 카테고리)에 따라 그룹별로 비교하고자 할 때.
    • 여러 데이터셋을 비교하여 각 그룹별로 회귀선을 그려보고자 할 때.
  • 따라서 광고비와 매출 간의 관계나 가격과 판매량 간의 관계 등을 분석할 때 매우 유용합니다