데이터의 시각화는 방대한 양의 데이터를 빠르게 확인하고 유의미한 특성을 찾아내는 중요한 작업이다
파이썬에는 여러 가지 시각화 라이브러리가 있지만, 그중 matplotlib는 가장 범용적으로 사용하는 라이브러리이다
matplotlib 시각화 방법 지원
- 선 그래프(line plot)
- 막대 그래프(bar plot)
- 파이 그래프(pie plot)
- 히스토그램(histogram)
- 상자 그래프(box plot)
- 산점도(scatter plot)
1. 일변량 시각화 탐색하기
- matplotlib을 사용하려면 figure, plot, show 3가지를 기억하면 된다
- figure는 시각화 하는 영역을 지정한다, matplotlib.pyplot을 plt로 선언하고 plt.figure로 사용한다
- plot은 시각화 내용을 표기하며, 시각화에 사용할 plot의 형태와 매개변수 등에 따라 변경된다.
figure와 같은 방식으로 plt.plot으로 사용함
- show는 시각화한 객체를 출력하며, plt.show으로 사용한다. 주피터 노트북 환경에서는 셀별로 코드를 실행하기 때문에 figure, show를 생략하고 사용하기도 한다
1) 선 그래프
- 시간이나 순서에 따른 데이터의 연속적인 변화량을 관찰할 때 주로 사용되는 그래프이다
- 선 그래프는 수량을 점으로 표시한 후 해당 점을 선으로 이어서 그려주기 때문에 증가와 감소에 대한 상태 변화를 파악하는데 유용하다
- 항공권 가격 예측 데이터에서 출발까지 남은 일자에 따라 항공권 가격이 어떻게 변화하는지 시각화를 통해 확인할 수 있다
우선 항공권 구입 시점에 따른 평균 가격을 확인하기 위해 데이터를 만들어보면
교재에서는
df.groupby('days_left').mean() 은
그룹별로 모든 컬럼을 평균(mean) 하려고 한다.
근데 df 안에는 이런 문자열 컬럼이 있어:
- airline (SpiceJet, Indigo 등)
- source
- destination
- class
이런 object 타입 컬럼을 평균낼 수 없어 → 그래서 TypeError 발생.
방법 : 필요한 숫자 컬럼만 직접 적기
예를 들어 price만 평균내고 싶다면:

항공권 구입 시점에 따른 비행시간과 항공권 가격 데이터프레임이 만들어졌다
이제 matplotlib을 활용하여 출발까지 남은 일자(days_left)와 항공권 가격(price) 데이터를 가지고, 출발까지 남은 일자에 따라 항공권 가격이 어떻게 변화하는지 선 그래프를 그려서 확인해보자

matplotlib.pyplot을 plt로 선언하여 matplotlib를 불러온 후, plt.plot을 사용하여 선 그래프를 시각화
plt.xlabel과 plt.ylabel은 각각 x축과 y축의 이름을 지정해 주는 함수
출발까지 남은 일자가 많을 수록, 즉 항공권을 미리 구매할수록 가격이 저렴해지고 출발일에 가까울수록 비싸다는 사실을 확인할 수 있다
이처럼 선 그래프는 시간이나 순서에 따른 데이터의 연속적인 변화량을 확인하는데 유용하다
2) 막대 그래프(bar plot)
- 범주에 대한 통계 데이터나 양을 막대 모양으로 나타내는 그래프이다
- 각 항목의 수량을 한눈에 파악하기 쉽고, 크고 작음을 비교할 수 있다
막대 그래프를 사용해서 항공사별 평균 항공권 가격을 비교해보자

Air_India와 Vistara 항공사가 다른 4개의 항공사보다 가격이 비싸다는 것을 단번에 확인할 수 있다
이처럼 막대 그래프는 각 항목의 수량을 한눈에 파악하여 크고 작음을 비교하는데 유용하다
3) 파이 그래프(pie plot)
- 전체에 대한 각 부분의 비율을 부채꼴 모양으로 나타낸 그래프이다
- 경우에 따라 원형이 아닌 도넛 모양으로 나타내기도 하며, 전체를 100으로 놓고 각각의 비율대로 나누어 표기하므로 한눈에 알 수 있다.
출발 시간에 따른 비행기 스케줄을 확인해 보자
plt.pie를 사용하여 파이 그래프를 시각화하면

Morning 시간대 출발이 가장 많고, Late_Night를 제외한 대부분의 시간에 고루 출발한다는 사실을 확인할 수 있다
이처럼 파이 그래프는 데이터가 분포하는 비율을 확인할 때 유용하다
4) 히스토그램(histogram)
- 특정 데이터의 빈도수를 막대 모양으로 표시한 그래프이다
- 가장 많이 사용되는 통계, 분석 도구이다
목적지까지 소요 시간의 분포를 확인해보자
plt.hist를 사용하여 히스토그램을 시각화하면 되는데 bins 파라미터를 알아야 한다 bins는 계급을 몇 개의 구간으로 나눌지를 지정하며 기본값은 10이다
비행시간(duration) 데이터의 bins를 10과 20으로 설정하고 시각화해서 비교해보면

두 그래프를 비교해보면 비슷한듯 다른 모습이다
공통적으로 5~15시간 이내가 가장 많은 비중을 차지하는데, bins 20기준으로 보면 0~2.5시간 내에도 많은 편수가 있다
히스토그램은 빈도나 빈도밀도 등을 확인하기에 유용하다
5)상자 그래프(box plot)
- 사분위수를 중심으로 수치적 요약 통계 자료를 시각화하는 그래프이다
- 수치 자료로 얻어낸 통계량인 5가지(최솟값, 제1사분위수, 중앙값, 제3사분위수, 최댓값)를 가지고 그래프를 만들어 데이터를 이해하는데 유용하다
| 값 | 설명 |
| 이상치 | 정해진 최댓값보다 크거나, 최솟값 보다 작은값 |
| 최댓값 | 제3사분위수+1.5*IQR보다 작은 값 중 최댓값 |
| 제3사분위수 | 제3사분위수(75%)를 나타냄 |
| 중앙값 | 제2사분위수(50%)를 나타냄 |
| 제1사분위수 | 제1사분위수(25%)를 나타냄 |
| 최솟값 | 제1사분위수-1.5*IQR보다 큰 값 중 최솟값 |
비행기 항공권 가격을 상자 그래프로 확인해 보자
가격 항목만 목록으로 만들어 plt.boxplot의 파라미터로 넣으면 바로 상자 그래프를 통해 항공권의 데이터 요약 통계와 분포를 확인할 수 있다

상자 그래프에서 알 수 있는 것은 가격 데이터의 범위는 0~120000 사이이지만 중앙값이 10000정도로 50%의 비행기는 10000 이하의 가격으로 판매된다는 것이다
여러 항목으로 상자 그래프를 만들어서 비교하면, 데이터프레임의 boxplot 메소드도 사용할 수 있다
출발 시간별 가격 정보의 분포를 확인해보면

'AICE associate' 카테고리의 다른 글
| 시각화로 데이터 탐색하기(2) (0) | 2025.11.24 |
|---|---|
| 지표로 데이터 탐색하기 (1) | 2025.11.17 |
| 데이터프레임 병합하기 (0) | 2025.11.11 |