이번 주차에는 파이썬의 대표적인 시각화 패키지인 matplotlib와 seaborn을 이용해 실습을 진행했습니다.
시각화 패키지는 비즈니스 인사이트를 파악하기 위해 사용하는 것인데요.
차트를 해석하며 단순히 수치를 보는 것이 아니라, 비즈니스적 의미를 발견할 수 있습니다.
하지만 시각화 단계에서 몇 가지 한계가 있는데요
- 그래프와 통계량은 원본 데이터가 아닌 요약된 정보(원본)가 표현된다
- 요약의 관점에 따라 해석의 결과가 달라질 수 있다
- 요약 과정에서 정보의 손실이 발생할 수 있다
📍파이썬 시각화 패키지
- matplotlib(매트플롯립) : 가장 기본적인 시각화 라이브러리
- seaborn : matplotlib 위에서 사용됨
import pandas as pd
import numpy as np
# 시각화 라이브러리
import matplotlib.pyplot as plt
import seaborn as sns
📍기본 차트 구성
plt.plot(data['Date'], data['Ozone'])
plt.xlabel('Date')
plt.ylabel('Ozone')
plt.title('Daily Airquality')
plt.show()
plt.plot(1차원 값)을 사용하면

- x축 : 인덱스
- y축 : 데이터 값 => 1차원 값이므로 시리즈로 가능하다

같은 그래프를 아래와 같이 두가지 방법을 통해 구현할 수 있습니다.
표현 방식만 다를 뿐 결과는 똑같음을 알 수 있었어요


📍차트 꾸미기
- color
- 'red','green','blue' ...
- 혹은 'r', 'g', 'b', ...
- https://matplotlib.org/stable/gallery/color/named_colors.html
- linestyle
- 'solid', 'dashed', 'dashdot', 'dotted'
- 혹은 '-' , '--' , '-.' , ':'
- marker=markerdescription
"." point "," pixel "o" circle "v" triangle_down "^" triangle_up "<" triangle_left ">" triangle_right


plt.plot(data['Date'], data['Ozone'])
plt.xticks(rotation = 30) # x축 값 꾸미기 : 방향을 30도 틀어서 (x축 인덱스 겹치니까.. )
plt.xlabel('Date') # x축 이름 지정
plt.ylabel('Ozone') # y축 이름 지정
plt.title('Daily Airquality') # 타이틀
plt.show()
📍여러 그래프 겹쳐 그리기
아래와 같이 두 그래프를 겹쳐서 그리고, 오른쪽 위에 라벨링 하려면

# 첫번째 그래프
plt.plot(data['Date'], data['Ozone'], label = 'Ozone') # label = : 범례추가를 위한 레이블값
# 두번째 그래프
plt.plot(data['Date'], data['Temp'], label = 'Temp')
plt.legend(loc = 'upper right') # 레이블 표시하기. loc = : 위치
plt.show()
이렇게 label과 legend를 활용하면, 여러 그래프를 겹쳐서 비교할 수 있습니다.
📍그래프 조정하기
✔️ 축 범위 지정
plt.plot(data['Ozone'])
plt.ylim(0, 100) #y축 범위 조절
plt.xlim(0,10) #x축 범위 조절
plt.grid()
plt.show()
✔️ 그래프 크기 조정
plt.figure(figsize = (4, 3))
plt.plot(data['Ozone'])
plt.ylim(0, 100)
plt.xlim(0,10)
plt.grid()
plt.show()
✔️ 수평선, 수직선 추가
plt.plot(data['Ozone'])
plt.axhline(40, color = 'grey', linestyle = '--') #수평선 그리기
plt.axvline(10, color = 'red', linestyle = '--') #수직선 그리기
plt.show()
✔️ 여러 개 그래프 나눠서 그리기
- row : 고정된 행 수
- column : 고정된 열 수
- index : 순서
plt.figure(figsize = (12,8)) #가로의 길이를 12인치, 세로의 길이를 8인치 (default: 6.4, 4.4)
plt.subplot(3,1,1) #3행 1열짜리로 나눠 -> 그중에 1번째 그래프
plt.plot('Date', 'Temp', data = data)
plt.grid()
plt.subplot(3,1,2) #3행 1열짜리로 나눠 -> 그중에 2번째 그래프
plt.plot('Date', 'Wind', data = data)
plt.subplot(3,1,3) #3행 1열짜리로 나눠 -> 그중에 3번째 그래프
plt.plot('Date', 'Ozone', data = data)
plt.grid()
plt.ylabel('Ozone')
plt.tight_layout() # 그래프간 간격을 적절히 맞추기
plt.show()

강사님의 설명도 귀에 쏙쏙 박혀서 지루한 강의형 수업이 아니고 ,
단순히 개념만 설명하는게 아니라 실습을 진행하기 때문에 지루하지 않더라구요
복습을 하면서 헷갈렸던 부분을 확실히 다져나가고
이렇게 블로그에 다시 정리하며 되새김질을 하니까 더 알차게 느껴지는 것 같아요!
처음에 학회를 시작할 때는 도움이 될 지 혹은 잘 따라갈 수 있을지 걱정을 많이 했는데
하다보니 뿌듯함을 더 많이 느끼는 것 같네요
앞으로도 화이팅해서 열심히 해나가겠슴당
아자자
'BDA' 카테고리의 다른 글
| [BDA] 6주차 수치형 vs 수치형 (0) | 2025.11.23 |
|---|---|
| [BDA] 5주차 단변량 분석 범주형 (0) | 2025.11.06 |
| [BDA] 4주차 단변량 분석 (1) | 2025.10.13 |
| [BDA] 2주차 파이썬 기초, 판다스 복습 (0) | 2025.09.29 |
| [BDA] BDA를 시작하며 .. /1주차 수업 리뷰 (0) | 2025.09.19 |