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) 간의 관계를 분석하고자 할 때.
- 특정 범주형 변수(예: 지역 또는 제품 카테고리)에 따라 그룹별로 비교하고자 할 때.
- 여러 데이터셋을 비교하여 각 그룹별로 회귀선을 그려보고자 할 때.
- 따라서 광고비와 매출 간의 관계나 가격과 판매량 간의 관계 등을 분석할 때 매우 유용합니다
'[업무 지식] > Seaborn' 카테고리의 다른 글
[catplot] Grouped barplots (0) | 2024.11.09 |
---|---|
[relplot] Line plots on multiple facets (0) | 2024.11.09 |
[displot] Facetting histograms by subsets of data (0) | 2024.11.09 |
[lineplot] Timeseries plot with error bands (0) | 2024.11.08 |
[Scatterplot] Scatterplot with multiple semantics (0) | 2024.11.08 |