수치형 데이터 파이썬 시각화하기: 스템 플롯(Stem Plot) 활용법
수치형 데이터를 시간이나 순서에 따라 시각화하고 싶다면 어떤 그래프가 가장 적합할까요? Stem Plot은 아래 그림과 같이 데이터 포인트를 기준선에서 각 값까지 수직선과 마커로 표현해 변화를 명확하게 파이썬 시각화하는 방법입니다.
이번 포스트에서는 파이썬 matplotlib
을 사용해 스템 플롯을 그리고, 수치 데이터를 효과적으로 시각화하는 방법을 배우겠습니다. 단계별 코드와 함께 자세한 설명을 제공하니 따라 해보세요!
수치 데이터와 스템 플롯
수치형 데이터란?
Numerical Data는 숫자로 표현되는 데이터를 의미하며, 연속형(키, 몸무게)과 이산형(개수, 카운트)으로 나뉩니다.
스템플롯이란?
스템플롯은 수직선과 마커를 사용해 수치 데이터를 시각화하는 그래프입니다.
- 데이터 포인트를 선과 마커로 강조합니다.
- 순서나 시간에 따른 변화를 표현할 때 유용합니다.
해당 데이터 예시
아래는 실제 활용할 수 있는 수치 데이터 예시입니다.
1. 센서 측정값
센서가 시간에 따라 온도 또는 습도를 측정한 결과입니다.
시간(분) | 온도(°C) |
---|---|
1 | 22 |
2 | 24 |
3 | 23 |
4 | 25 |
… | … |
- 활용: 시간과 온도 데이터를 스템플롯으로 시각화하면, 특정 시간대에 온도가 급격히 상승하거나 하락하는 패턴을 확인할 수 있습니다.
2. 제품 판매량
제품이 특정 기간(예: 하루 단위) 동안 판매된 개수입니다.
일자 | 판매량(개) |
---|---|
1일 | 50 |
2일 | 80 |
3일 | 30 |
4일 | 100 |
5일 | 70 |
- 활용: 스템플롯을 활용하면 일별 판매량의 변동을 직관적으로 확인할 수 있습니다. 특정 날에 판매량이 급증한 원인을 분석하는 데 도움이 됩니다.
3. 시험 점수
학생들이 한 시험에서 받은 점수입니다.
학생 번호 | 점수 |
---|---|
1 | 75 |
2 | 90 |
3 | 65 |
4 | 85 |
… | … |
- 활용: 점수 분포와 특정 학생들의 성적 변화를 강조하기 위해 스템플롯을 사용할 수 있습니다.
4. 이벤트 발생 횟수
특정 시스템이나 기계에서 이벤트가 발생한 횟수를 기록한 데이터입니다.
시간대 | 이벤트 횟수 |
---|---|
00:00 | 5 |
01:00 | 2 |
02:00 | 10 |
03:00 | 8 |
… | … |
- 활용: 특정 시간대에 이벤트가 집중되는 패턴을 스 플롯으로 확인하면 원인을 분석하고 최적화할 수 있습니다.
파이썬 스템플롯 코드 예제
아래 코드를 통해 수치 데이터를 시각화하는 스템플롯을 구현해 봅시다.
import matplotlib.pyplot as plt
import numpy as np
# 수치 데이터 생성
x = np.arange(0, 100, 1) # X축: 0부터 99까지의 순서 데이터
y = np.random.randint(50, 300, size=100) # Y축: 50~300 사이의 임의 수치 데이터
# 스템플롯 그리기
plt.figure(figsize=(12, 6)) # 그래프 크기 설정
plt.stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-')
# 그래프 제목과 레이블
plt.title("Stem Plot of Numerical Data", fontsize=15)
plt.xlabel("Index", fontsize=12)
plt.ylabel("Values", fontsize=12)
# 레이아웃 조정 및 그래프 출력
plt.tight_layout()
plt.show()
코드 간략 해설
- 데이터 생성
x
: X축에 사용할 0부터 99까지의 순서형 데이터.y
: Y축에 사용할 50부터 300 사이의 랜덤 수치 데이터.
- 스템플롯 그리기
plt.stem()
: 스템 플롯을 그리는 함수.linefmt='b-'
: 수직선을 파란색 실선으로 표시.markerfmt='bo'
: 데이터 포인트를 파란색 원형 마커로 표시.basefmt='r-'
: 기준선(바닥선)을 빨간색 실선으로 표시.
- 그래프 레이아웃 설정
- 제목, X/Y 레이블을 설정하고
tight_layout()
으로 여백을 조정해 그래프를 깔끔하게 출력합니다.
- 제목, X/Y 레이블을 설정하고
마무리
스템 플롯은 수치 데이터를 직관적으로 파이썬 시각화하는 데 유용합니다. 각 포인트를 기준선에서 연결된 선과 마커로 나타내어 데이터 변화를 명확히 표현할 수 있습니다. 다음과 같은 활용 예시를 고려할 수 있습니다.
활용 예시
- 센서 데이터 파이썬 시각화: 시간에 따른 센서 값 변화 분석.
- 시계열 데이터: 특정 기간 동안의 변화를 강조.
- 스파이크 분석: 데이터의 급격한 변동 탐지.
파이썬 시각화 하는 것에 흥미가 있으시다면, 파이썬 시각화로 범주형 데이터 시각화하기: 그룹별 막대 그래프와 범주형 데이터 예시 포스트를 보시고 관련 지식을 쌓아보세요!
#코드 상세 해설
1. 라이브러리 불러오기
import matplotlib.pyplot as plt import numpy as np
matplotlib.pyplot
: 그래프 그리기 위한 라이브러리.numpy
: 수치 데이터를 생성하는 데 사용됩니다.2. 수치 데이터 생성
x = np.arange(0, 100, 1) # X축: 0부터 99까지의 순서 데이터 y = np.random.randint(50, 300, size=100) # Y축: 50~300 사이의 임의 수치 데이터
np.arange(0, 100, 1)
: 0부터 99까지 1 간격의 숫자를 생성합니다.np.random.randint(50, 300, size=100)
: 50부터 300 사이의 정수를 100개 생성합니다.3. 스템 플롯 그리기
plt.figure(figsize=(12, 6)) plt.stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-', use_line_collection=True)
plt.figure(figsize=(12, 6))
: 그래프의 크기를 가로 12, 세로 6으로 설정합니다.plt.stem()
: 스템 플롯을 그립니다.
linefmt='b-'
: 수직선을 파란색 실선으로 표시.markerfmt='bo'
: 데이터 포인트를 파란색 원형 마커로 표시.basefmt='r-'
: 기준선을 빨간색 실선으로 표시.use_line_collection=True
: 그래프 성능 최적화 옵션입니다.4. 그래프 제목과 레이블 설정
plt.title("Stem Plot of Numerical Data", fontsize=15) plt.xlabel("Index", fontsize=12) plt.ylabel("Values", fontsize=12)
plt.title()
: 그래프의 제목을 설정합니다.plt.xlabel()
: X축 라벨을 설정합니다.plt.ylabel()
: Y축 라벨을 설정합니다.5. 레이아웃 조정 및 그래프 출력
plt.tight_layout() plt.show()
plt.tight_layout()
: 그래프의 여백을 자동으로 조정해 요소가 겹치지 않도록 합니다.plt.show()
: 그래프를 화면에 출력합니다.