본문 바로가기
Data Visualization/Seaborn

[Seaborn] 12. lineplot

by 베짱이28호 2024. 11. 15.

[Seaborn] 12. lineplot

 


사용할 데이터

import pandas as pd
import numpy as np

# 데이터 생성
np.random.seed(42)

# 기본 데이터 구조 생성
months = ['3월', '4월', '5월', '6월', '7월']
classes = ['A반', 'B반', 'C반', 'D반']

data = []
for class_name in classes:
    # 기본 성적 수준 설정 (반마다 다르게)
    base_score = np.random.normal(75, 5)
    
    # 시간에 따른 변화 추가
    for month in months:
        # 약간의 상승 트렌드와 노이즈 추가
        trend = months.index(month) * 2  # 시간에 따른 상승
        noise = np.random.normal(0, 3)   # 랜덤 변동
        
        score = base_score + trend + noise
        data.append({
            '월': month,
            '반': class_name,
            '평균점수': round(score, 1)
        })

# DataFrame 생성
df = pd.DataFrame(data)

1. lineplot 기본

sns.lineplot(data=df)


2. 컬럼 입력

sns.lineplot(data=df, x='월', y='평균점수')

 


3. 그룹화

sns.lineplot(data=df, x='월', y='평균점수', hue='반')

 


4. 마커 설정

sns.lineplot(
    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분
    data=df, x='월', y='평균점수', hue='반',
    
    # 마커 설정 : 사용 / 모양 / 사이즈
    markers=True, marker='o', markersize=8)

 


5. 라인 스타일

sns.lineplot(
    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분
    data=df, x='월', y='평균점수', hue='반',
    
    markers=True, marker='o', markersize=8,
    
    linestyle='-', linewidth=2)

plt.title('반별 평균 점수 변화', pad=15)


6. 색상

sns.lineplot(
    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분
    data=df, x='월', y='평균점수', hue='반',
    
    markers=True, marker='o', markersize=8,
    
    linestyle='-', linewidth=2,
    
    palette='muted', alpha=0.8
)

plt.title('반별 평균 점수 변화', pad=15)


 

7. 커스터마이징

# 스타일 설정
# plt.style.use('seaborn')
plt.figure(figsize=(10, 6))

# 라인플롯 그리기
sns.lineplot(
    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분
    data=df, x='월', y='평균점수', hue='반',
    
    # 마커 설정: 크기 / 스타일
    markers=True, marker='o', markersize=8,
    
    # 선 설정: 스타일 / 두께
    linestyle='-', linewidth=2,
    
    # 스타일 설정: 팔레트 / 투명도
    palette='Set2', alpha=0.8
)

# 그래프 커스터마이징
plt.title('반별 평균 점수 변화', pad=15, size=15)
plt.xlabel('월', size=12)
plt.ylabel('평균 점수', size=12)

# 격자 설정
plt.grid(True, alpha=0.3)

# 범례 설정
plt.legend(title='반', title_fontsize=12, fontsize=10)


정리

sns.lineplot(
    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분
    data=df, x='col1', y='col2', hue='col3',
    
    # 마커 설정: 표시 / 종류 / 크기
    markers=True, marker='o', markersize=8,
    
    # 선 설정: 스타일 / 두께
    linestyle='-', linewidth=2,
    
    # 스타일 설정: 팔레트 / 투명도
    palette='muted', alpha=0.8
)

스니펫

{
    "Seaborn Lineplot Template": {
        "prefix": "sns_line",
        "body": [
            "sns.lineplot(",
            "    # 기본 데이터 설정: 데이터프레임 / X축 / Y축 / 색상구분",
            "    data=${1:df}, x='${2:col1}', y='${3:col2}', hue='${4:col3}',",
            "",
            "    # 마커 설정: 표시 / 종류 / 크기",
            "    markers=True, marker='${5:o}', markersize=${6:8},",
            "",
            "    # 선 설정: 스타일 / 두께",
            "    linestyle='${7:-}', linewidth=${8:2},",
            "",
            "    # 스타일 설정: 팔레트 / 투명도",
            "    palette='${9:muted}', alpha=${10:0.8}",
            ")"
        ],
        "description": "Create a Seaborn lineplot with common parameters"
    }
}

'Data Visualization > Seaborn' 카테고리의 다른 글

[Seaborn] 13. pointplot  (0) 2024.11.16
[Seaborn] 11. swarmpplot  (0) 2024.11.15
[Seaborn] 10. stripplot  (0) 2024.11.15
[Seaborn] 9. countplot  (0) 2024.11.15
[Seaborn] 8. pairplot  (0) 2024.11.15
[Seaborn] 7. jointplot  (0) 2024.11.15
[Seaborn] 6. heatmap  (0) 2024.11.15

댓글