5.3.3 그래프 속성과 스타일링 (Attributes & Styling)
Matplotlib의 핵심 속성(Attribute)들을 이해하고, 이를 조합하여 나만의 멋진 그래프를 디자인할 수 있습니다.
💾 [실습 파일 다운로드] 본 강의의 스타일링 실습 코드를 직접 실행해 볼 수 있는 주피터 노트북 파일입니다.
- 📥 styling_practice.ipynb 파일 다운로드 (클릭 또는 마우스 우클릭 후 ‘다른 이름으로 링크 저장’)
🚨 트러블슈팅:
ModuleNotFoundError에러가 발생할 때 실습 코드를 실행할 때No module named 'matplotlib'과 같은 에러가 뜬다면, 현재 사용 중인 파이썬 환경에 라이브러리가 없는 것입니다. 이럴 땐 코드 최상단 셀이나 터미널에서%pip install matplotlib명령을 한 번 실행하여 패키지를 설치해 주세요.
주요 속성 (Key Attributes)
그래프를 꾸미는 것은 마치 캐릭터를 커스터마이징하는 것과 같습니다. Matplotlib이 제공하는 다양한 옵션을 알아봅시다.
- 색상 (Color,
c또는color): 선의 색상을 지정합니다.'b'(파랑),'g'(초록),'r'(빨강),'k'(검정) 등의 약어나 HEX 코드를 사용할 수 있습니다. - 마커 (Marker,
marker): 데이터 포인트의 위치를 표시하는 도형입니다.'.'(점),'o'(원),'^'(삼각형),'s'(사각형),'*'(별) 등이 있습니다. - 선 스타일 (Linestyle,
ls또는linestyle): 선의 모양을 결정합니다.'-'(실선),'--'(파선),':'(점선),'-.'(쇄선) 등이 있습니다. linewidth(lw): 선의 굵기 (기본값: 1.5)markersize(ms): 마커의 크기alpha: 투명도 (0.0 ~ 1.0 사이, 0은 투명, 1은 불투명)label: 범례에 표시될 이름입니다. 이후plt.legend()를 호출해야 표시됩니다.
[실습 1] 스타일링 종합 실습
다양한 속성들을 종합적으로 적용하여 두 시리즈의 데이터를 가진 직관적인 그래프를 그려보겠습니다. 용사와 몬스터의 레벨별 체력 성장을 비교하는 그래프입니다.
import matplotlib.pyplot as plt
# 데이터 준비
level = [1, 2, 3, 4, 5]
hero_hp = [100, 120, 150, 190, 240] # 용사 체력
monster_hp = [80, 130, 200, 300, 450] # 몬스터 체력
plt.figure(figsize=(8, 5))
# 용사: 파란색 실선, 원(circle) 마커, 선굵기 2
plt.plot(level, hero_hp, label='Hero (용사)', c='b', ls='-', marker='o', lw=2)
# 몬스터: 빨간색 쇄선, X 마커, 선굵기 2
plt.plot(level, monster_hp, label='Monster (괴물)', c='r', ls='-.', marker='x', lw=2)
# 제목 및 축 레이블 꾸미기
plt.title("Hero vs Monster HP Growth", fontsize=15)
plt.xlabel("Level", fontsize=12)
plt.ylabel("HP", fontsize=12)
# 범례 표시 및 그리드 설정
plt.legend(fontsize=11)
plt.grid(True, axis='y', linestyle=':', alpha=0.5)
plt.show()
[코드 설명]
c='b', ls='-', marker='o', lw=2: 용사의 선을 파란색(b), 실선(-), 동그라미 마커(o), 굵기 2로 꾸밉니다.c='r', ls='-.', marker='x', lw=2: 몬스터의 선을 빨간색(r), 점+실선 혼합인 쇄선(-.), X 모양 마커(x), 굵기 2로 꾸밉니다.fontsize=15: 제목과 라벨의 폰트 크기를 키워서 가시성을 높입니다.plt.grid(...):axis='y'를 주어 가로선 그리드만 표시하며,alpha=0.5로 반투명하게 만들어 선 그래프를 돋보이게 합니다.
💡 데이터 분석가의 시선 용사(파란 선)는 초반에 안정적으로 성장하지만 후반부 성장폭이 둔화되는 반면, 괴물(빨간 점선)은 후반부 레벨 4~5 구간에서 기하급수적(Exponential)으로 체력이 뻥튀기됨을 시각적으로 단번에 파악할 수 있습니다!
이처럼 각자의 특성을 살린 색과 스타일을 적용하면, 단순히 예쁜 것을 넘어 데이터의 숨겨진 이야기를 듣는 사람에게 순식간에 전달하는 멋진 그래프 프레젠테이션이 가능해집니다.
서브목차