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

[relplot] Line plots on multiple facets

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

dots = sns.load_dataset("dots")
dots

 

seaborn

# Define the palette as a list to specify exact values
palette = sns.color_palette("rocket_r")

# Plot the lines on two facets
sns.relplot(
    data=dots,
    x="time", 
    y="firing_rate",
    hue="coherence", 
    size="choice", 
    col="align",
    kind="line", 
    size_order=["T1", "T2"], 
    palette=palette,
    height=5, 
    aspect=.75, 
    facet_kws=dict(sharex=False),
)

 

설명

  • sns.set_theme(style="ticks"): Seaborn의 테마를 설정하는 함수입니다. 여기서는 "ticks" 스타일을 사용하여 그래프에 눈금(ticks)이 강조된 깔끔한 스타일을 적용합니다.
  • sns.load_dataset("dots"): Seaborn에서 제공하는 dots라는 예시 데이터셋을 불러옵니다. 이 데이터셋은 시간(time)과 신경 신호(firing_rate)와 관련된 실험 데이터를 포함하고 있습니다.
    • 주요 변수:
      • time: 시간
      • firing_rate: 신경 신호의 발화율
      • coherence: 자극의 일관성(숫자형 변수)
      • choice: 피험자가 선택한 옵션 (T1 또는 T2)
      • align: 데이터 정렬 기준 (dots 또는 sacc)
  • palette = sns.color_palette("rocket_r"): Seaborn의 color_palette() 함수를 사용하여 색상 팔레트를 설정합니다. 여기서는 "rocket_r"라는 역순으로 된 팔레트를 사용하여 색상을 지정합니다. 이 팔레트는 어두운 색상에서 밝은 색상으로 변하는 그라데이션을 제공합니다.
  • sns.relplot(): Seaborn의 관계형(relational) 플롯 함수로, 두 변수 간의 관계를 시각화합니다. 이 함수는 여러 축으로 데이터를 나누어 시각화할 수 있는 기능을 제공합니다.
    • data=dots: 시각화할 데이터셋을 지정합니다. 여기서는 dots 데이터셋을 사용합니다.
    • x="time": X축에 표시할 변수를 지정합니다. 여기서는 time(시간)을 X축에 표시합니다.
    • y="firing_rate": Y축에 표시할 변수를 지정합니다. 여기서는 firing_rate(신경 발화율)를 Y축에 표시합니다.
    • hue="coherence": 데이터의 범주를 색상으로 구분합니다. 여기서는 자극의 일관성(coherence)에 따라 선의 색상이 달라집니다.
    • size="choice": 점 또는 선의 크기를 선택한 옵션(choice)에 따라 다르게 설정합니다. 즉, T1과 T2에 따라 크기가 달라집니다.
    • col="align": 데이터 정렬 기준(align)에 따라 열 방향으로 플롯을 나눕니다. 즉, "dots"와 "sacc" 두 가지 정렬 기준에 대해 별도의 플롯이 생성됩니다.
    • kind="line": 선 그래프를 그리도록 설정합니다.
    • size_order=["T1", "T2"]: choice 변수의 순서를 지정하여 T1과 T2가 각각 어떻게 시각화될지 결정합니다.
    • palette=palette: 앞서 정의한 "rocket_r" 색상 팔레트를 사용하여 선의 색상을 설정합니다.
    • height=5: 각 플롯의 높이를 5인치로 설정합니다.
    • aspect=.75: 플롯의 가로 세로 비율을 조정하여 각 플롯이 더 좁고 길게 나타나도록 설정합니다.
    • facet_kws=dict(margin_titles=True): FacetGrid에서 사용할 추가적인 키워드 인자를 설정합니다. margin_titles=True는 각 플롯의 제목을 여백에 표시하도록 합니다.
결론
  • 이 시각화는 다음과 같은 경우 유용하게 사용할 수 있습니다:
    • 시간(time)에 따른 연속형 변수(예: 신경 발화율)의 변화를 분석하고자 할 때.
    • 여러 범주형 변수(예: coherence, choice)에 따라 데이터를 그룹핑하고 비교하고자 할 때.
    • 실험 결과나 생리적 반응 데이터를 시각적으로 분석하고자 할 때.
  • 뇌파 데이터뿐만 아니라 다양한 분야에서 적용 가능하며, 특히 실험 데이터를 시각적으로 표현하는 데 매우 유용한 도구입니다