HSEOM GeckoHSEOM
Instagram

흑섬 TECH 블로그 - 데이터 기반 브리딩 기술

레오파드게코 브리딩에 데이터 분석과 AI 기술을 접목합니다. Python, NumPy를 활용한 체중 관리, 성장 추이 분석, 환경 데이터 시각화 등 실무에서 직접 사용하는 기술을 일반인도 이해하기 쉽게 설명합니다.

주요 카테고리

Data Viz 카테고리

NumPy, Pandas를 활용한 데이터 분석과 시각화 기술을 일상 예제로 쉽게 설명합니다.

12개의 글이 있습니다.

[Step 1] 데이터를 선 그래프로 시각화하는 실습 - yfinance + matplotlib

개발자나 데이터 분석가만 이쁜 그래프를 그릴 수 있는 건 아닙니다. 정말 간단한 지식이면 누구나 화려한 시각화를 만들 수 있어요. Step 1에서는 선 그래프 그리는 방법론을 주식 데이터 예제로 따라해봅니다.

카테고리: Data Viz

작성일: 2026-01-19

예상 읽기 시간: 15

Back to Tech
Data Viz·15min read·

[Step 1] 데이터를 선 그래프로 시각화하는 실습 - yfinance + matplotlib

개발자나 데이터 분석가만 이쁜 그래프를 그릴 수 있는 건 아닙니다. 정말 간단한 지식이면 누구나 화려한 시각화를 만들 수 있어요. Step 1에서는 선 그래프 그리는 방법론을 주식 데이터 예제로 따라해봅니다.

시작하며 - 누구나 할 수 있는 데이터 시각화

"이쁜 그래프는 개발자나 데이터 분석가만 그릴 수 있는 거 아냐?" 많은 분들이 이렇게 생각합니다. 하지만 천만의 말씀입니다.

정말 간단한 지식만 있으면, 누구나 화려하고 전문적인 그래프를 그릴 수 있습니다. 이 글은 데이터 시각화 Step 1로, 가장 기본이 되는 선 그래프 그리는 방법을 다룹니다.

예제로는 주식 가격 데이터를 사용하지만, 핵심은 선 그래프를 그리는 방법론입니다. 체중 기록, 매출 추이, 온도 변화—어떤 데이터든 같은 방식으로 시각화할 수 있습니다.

아무것도 설치하지 않고, Google Colab만으로 30분이면 완성할 수 있습니다. 코딩 경험이 전혀 없어도 괜찮습니다. 저도 처음엔 그랬으니까요.

matplotlib로 완성된 주식 가격 선 그래프 - 삼성전자 2024년 추이

완성된 주식 그래프 - 삼성전자 2024년 추이를 한눈에!

개발 환경 세팅하기 - Google Colab으로 시작하기

코드를 작성하기 전에, 먼저 필요한 도구들을 준비해야 합니다. 하지만 걱정 마세요. 아무것도 설치할 필요가 없습니다!

Google Colab은 브라우저만 있으면 바로 사용할 수 있는 무료 파이썬 환경입니다. 구글 계정만 있으면 누구나 사용할 수 있어요.

2.1 Google Colab 시작하기

브라우저에서 colab.research.google.com에 접속하세요. 구글 계정으로 로그인하면 바로 사용할 수 있습니다.

화면 왼쪽 상단의 "+ New notebook" 버튼을 클릭하면 새 노트북이 열립니다. 파일명을 stock_chart.ipynb로 변경하세요.

Google Colab 초기 화면 - 새 노트북 만들기

2.2 필요한 라이브러리 설치

Colab은 이미 Python이 설치되어 있지만, 우리가 사용할 라이브러리는 추가로 설치해야 합니다. 첫 번째 셀에 다음 코드를 입력하고 Shift + Enter를 누르세요:

!pip install yfinance matplotlib

앞에 느낌표(!)가 붙은 명령어는 "시스템 명령어"를 의미합니다. Colab에서는 이렇게 !pip install로 쉽게 라이브러리를 설치할 수 있어요.

각 라이브러리의 역할은 다음과 같습니다:

  • yfinance: 주식 데이터 가져오기
  • matplotlib: 데이터를 그래프로 그리기

설치가 완료되면 이런 메시지가 나타납니다:

Colab에서 pip install 성공 화면

2.3 Colab 사용 팁

Colab은 주피터 노트북과 동일한 방식으로 작동합니다:

  • Shift + Enter: 현재 셀 실행하고 다음 셀로 이동
  • Ctrl + Enter: 현재 셀만 실행
  • + Code 버튼: 새로운 코드 셀 추가

코드를 작성하면 자동으로 구글 드라이브에 저장되므로, 언제든지 다시 열어서 작업할 수 있습니다.

yfinance로 주식 데이터 가져오기 - 단 3줄로 끝내기

이제 본격적으로 데이터를 가져와볼게요. 놀랍게도, 주식 데이터를 가져오는 건 정말 간단합니다.

3.1 yfinance 사용법

Colab의 새 셀(+ Code 버튼으로 추가)에 다음 코드를 입력해보세요:

import yfinance as yf

# 삼성전자 2024년 데이터 가져오기
stock = yf.download("005930.KS", start="2024-01-01", end="2024-12-31")
stock.head()  # 처음 5개 데이터 확인

코드를 작성한 후 Shift + Enter를 누르면 실행됩니다. 잠시 기다리면 데이터가 다운로드되고, 화면에 표가 나타납니다.

여기서 "005930.KS"는 삼성전자의 종목 코드입니다. 한국 거래소에 상장된 종목은 뒤에 .KS를 붙입니다. (코스닥은 .KQ를 사용합니다)

💡 Colab 꿀팁: Colab에서는 마지막 줄에 변수명만 쓰면 자동으로 출력됩니다. 그래서 print(stock.head()) 대신 stock.head()만 써도 됩니다!

3.2 데이터 구조 이해하기

가져온 데이터는 이런 구조로 되어 있습니다:

  • Open: 시가 (장이 시작할 때의 가격)
  • High: 고가 (하루 중 가장 높았던 가격)
  • Low: 저가 (하루 중 가장 낮았던 가격)
  • Close: 종가 (장이 마감될 때의 가격) ← 우리가 사용할 값!
  • Volume: 거래량 (얼마나 많이 거래되었는지)

우리는 주로 Close(종가)를 사용해서 그래프를 그립니다. 종가가 그날의 마지막 가격이기 때문에, 전체적인 추이를 보기에 가장 좋습니다.

첫 번째 그래프 그리기 - "짜잔~" 순간의 감동

드디어 그래프를 그려볼 시간입니다! 이 순간이 가장 재미있는 부분이에요.

4.1 가장 간단한 선 그래프

새로운 셀에 다음 코드를 입력하세요:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

# 한글 폰트 설정 (Google Colab용)
plt.rcParams['font.family'] = 'DejaVu Sans'
plt.rcParams['axes.unicode_minus'] = False

# 그래프 생성
plt.figure(figsize=(12, 6))
plt.plot(stock.index, stock['Close'], color='#0078D7', linewidth=2, label='Samsung Electronics')

# 스타일링
plt.title('Samsung Electronics 2024 Stock Price', fontsize=16, pad=20)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Close Price (KRW)', fontsize=12)
plt.grid(True, alpha=0.3)
plt.legend(loc='best')

# X축 날짜 포맷 (읽기 쉽게)
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=2))
plt.xticks(rotation=45)

plt.tight_layout()
plt.show()  # 짜잔~!
Google Colab에서 matplotlib 그래프 코드 실행 전 화면

코드를 입력하고 실행할 준비 완료!

Shift + Enter를 누르면... 짜잔! 파란색 선 그래프가 나타납니다!

이제 삼성전자의 2024년 주가 추이를 한눈에 볼 수 있습니다. 1월부터 7월까지 상승하다가, 하반기에 급락한 모습이 명확히 보이죠?

matplotlib로 그린 삼성전자 주식 선 그래프

첫 번째 그래프 완성! 이미 꽤 괜찮아 보이지 않나요?

코드 이해하기 - 각 줄이 하는 일

코드를 한 줄씩 뜯어볼게요. 어렵지 않습니다!

5.1 라이브러리 불러오기

import matplotlib.pyplot as plt
import matplotlib.dates as mdates

matplotlib.pyplot: 그래프를 그리는 핵심 도구
matplotlib.dates: 날짜를 예쁘게 표시하는 도구

5.2 폰트 설정

plt.rcParams['font.family'] = 'DejaVu Sans'
plt.rcParams['axes.unicode_minus'] = False

Google Colab에는 한글 폰트가 없어서, 기본 영문 폰트를 사용합니다. axes.unicode_minus = False는 마이너스 기호가 깨지지 않게 하는 설정이에요.

5.3 그래프 크기와 선 그리기

plt.figure(figsize=(12, 6))
plt.plot(stock.index, stock['Close'], color='#0078D7', linewidth=2)

figsize=(12, 6): 가로 12, 세로 6 인치 크기
color='#0078D7': 파란색
linewidth=2: 선 두께 2

5.4 날짜 포맷 설정

plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m'))
plt.gca().xaxis.set_major_locator(mdates.MonthLocator(interval=2))

• X축을 "2024-01" 형식으로 표시
• 2개월 간격으로 날짜 표시 (너무 빽빽하지 않게)

응용하기 - 다른 종목도 그려볼까요?

이제 코드를 이해했으니, 다른 종목도 그려볼 수 있습니다!

6.1 미국 주식 그리기

한국 주식은 뒤에 .KS를 붙였죠? 미국 주식은 티커 심볼만 쓰면 됩니다:

# 애플 주식
apple = yf.download("AAPL", start="2024-01-01", end="2024-12-31")

plt.figure(figsize=(12, 6))
plt.plot(apple.index, apple['Close'], color='#A2AAAD', linewidth=2)
plt.title('Apple Inc. 2024 Stock Price', fontsize=16)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Close Price (USD)', fontsize=12)
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

6.2 여러 종목 비교하기

삼성전자와 SK하이닉스를 한 그래프에 그려볼까요?

samsung = yf.download("005930.KS", start="2024-01-01", end="2024-12-31")
hynix = yf.download("000660.KS", start="2024-01-01", end="2024-12-31")

plt.figure(figsize=(12, 6))
plt.plot(samsung.index, samsung['Close'], color='#0078D7', linewidth=2, label='Samsung')
plt.plot(hynix.index, hynix['Close'], color='#E74C3C', linewidth=2, label='SK Hynix')
plt.title('Semiconductor Giants 2024', fontsize=16)
plt.xlabel('Date', fontsize=12)
plt.ylabel('Close Price (KRW)', fontsize=12)
plt.legend()
plt.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()

plt.plot()을 두 번 쓰면 두 선이 그려집니다! label을 추가하고 plt.legend()를 쓰면 범례가 나타나요.

마무리 - 이제 뭘 할 수 있을까?

축하합니다! 이제 할 수 있는 것:

  • 원하는 데이터를 가져올 수 있고
  • 선 그래프로 시각화할 수 있고
  • 여러 데이터를 비교할 수 있습니다

다음 단계로 나아가기

기본을 마스터했으니, 이제 더 재미있는 것들을 시도해볼 수 있습니다:

  • 이동평균선 추가: 20일, 60일 이동평균선을 그려서 추세를 파악해보세요
  • 거래량 함께 보기: 서브플롯(subplot)을 사용해서 가격과 거래량을 함께 표시할 수 있습니다
  • 해외 주식: "AAPL" (애플), "TSLA" (테슬라) 같은 미국 주식도 똑같은 방법으로 가능합니다
  • HTML로 저장: fig.write_html("my_chart.html")로 저장하면 다른 사람에게 공유할 수 있습니다

흑섬 브리딩에서의 활용

저는 이 방법으로 레오파드 게코의 체중 증가 그래프를 그리고 있습니다. 주식이든, 브리딩 기록이든, 운동 기록이든—데이터만 있으면 뭐든 시각화할 수 있습니다.

시각화는 데이터를 이해하는 가장 빠른 방법입니다. 숫자로만 보면 놓쳤을 패턴들이, 그래프로 그리면 한눈에 보입니다.

다음 시리즈 예고

다음 글에서는 "산점도를 이용한 데이터 관계 표현" (Step 2)을 다뤄볼 예정입니다. 두 변수 사이의 상관관계를 시각화하는 방법을 배워볼 거예요.

궁금한 점이 있거나, 이런 내용도 다뤄줬으면 좋겠다는 의견이 있다면 인스타그램 DM 주세요!

#선그래프#matplotlib#python#데이터시각화#yfinance#googlecolab