[Python] CSV 데이터 시각화하기 2

2024. 11. 29. 17:49·Python
목차
  1. 사용한 라이브러리

이번 포스팅에서는 Python을 이용해 CSV 파일로부터 데이터를 읽어오고, 월별 지하철 승하차 인원수를 막대그래프로 시각화하는 방법에 대해 설명할 거다. CSV 파일 처리, 데이터 합산, 그리고 matplotlib 라이브러리를 활용한 그래프 생성을 다뤘다.

 

사용한 라이브러리

csv: CSV 파일을 읽고 쓸 수 있게 도와주는 라이브러리다. 데이터를 손쉽게 처리할 수 있다.

matplotlib.pyplot: 그래프를 그릴 때 사용하는 라이브러리다. 막대그래프, 선그래프, 히스토그램 등 다양한 형태로 데이터를 시각화할 수 있다.

 

import csv  # CSV 파일 읽기를 위한 라이브러리
import matplotlib.pyplot as plt  # 그래프 생성을 위한 라이브러리

# CSV 파일 경로 지정
file_path = "subway.csv"

# 월별 데이터와 승하차인원수를 저장할 리스트 초기화
months = []  # 월을 저장할 리스트
peoples = []  # 각 월의 승하차인원수를 저장할 리스트

# CSV 파일 열기
with open(file_path, mode='r') as file:
    reader = csv.reader(file)  # CSV 파일을 읽어올 수 있는 reader 객체 생성
    header = next(reader)  # 첫 번째 줄(헤더)은 건너뛰기
    
    # CSV 파일의 각 줄을 순회하며 데이터 처리
    for row in reader:
        a = row[-2]  # 수송연월 데이터 (예: "Jan-23")
        b = row[-1]  # 승하차인원수 데이터
        
        # 월 데이터가 처음 등장하면 리스트에 추가
        if a not in months:
            months.append(a)  # 중복되지 않게 월 추가
            
        # 해당 월의 인덱스를 찾기
        index = months.index(a)
        
        # 해당 월의 데이터를 합산하기 위해 peoples 리스트 크기를 동적으로 조정
        if len(peoples) <= index:
            peoples.append(0)  # 새로운 월 데이터를 위한 초기값 추가
        
        # 월별 승하차인원수 데이터를 합산
        peoples[index] += int(b)  # 문자열을 정수로 변환 후 합산

# 그래프 크기 설정
plt.figure(figsize=(10, 6))  # 가로 10, 세로 6 크기의 그래프 생성

# 막대그래프 생성
plt.bar(months, peoples, color='skyblue')  # X축: months, Y축: peoples, 색상: 하늘색

# 그래프 제목 및 축 레이블 설정
plt.title("Monthly Subway Ridership", fontsize=15)  # 그래프 제목
plt.xlabel("Month", fontsize=12)  # X축 레이블
plt.ylabel("People", fontsize=12)  # Y축 레이블

# 각 막대 위에 승하차인원수를 표시
for i, v in enumerate(peoples):  
    plt.text(i, v + 50000, f"{v:,}", ha='center', fontsize=9)  
    # i: X축 위치, v: Y축 값, `f"{v:,}"`: 천 단위 콤마 추가, ha='center': 텍스트 중앙 정렬

# X축 레이블을 기울여서 겹치지 않게 표시
plt.xticks(rotation=45)

# 그래프 레이아웃 자동 조정
plt.tight_layout()

# 그래프 표시
plt.show()

 

 

추후 날씨와 그래프를 합쳐서 추가할 예정이다.

'Python' 카테고리의 다른 글

[Python] 데이터 시각화  (0) 2024.11.27
[Python] csv 파일 데이터 다뤄보기  (0) 2024.11.26
  1. 사용한 라이브러리
'Python' 카테고리의 다른 글
  • [Python] 데이터 시각화
  • [Python] csv 파일 데이터 다뤄보기
yn98
yn98
좌우명 : 여전할 것 인가, 역전할 것 인가? 백엔드 개발자가 되고싶은 역전하고 있는 개발자 꿈나무의 블로그입니다. 개발을 하면서 공부한 것들을 기록합니다. 24.06 ~
  • yn98
    개발 꿈나무
    yn98
  • 전체
    오늘
    어제
    • 분류 전체보기 (131)
      • Python (3)
      • 공부 (7)
      • DB (7)
      • JAVA (24)
      • JSP (9)
      • jQuery (2)
      • HTML (3)
      • Spring (20)
      • 웹 (4)
      • C (1)
      • Git (2)
      • 에러일기 (19)
      • 프로젝트 (6)
      • 책 (21)
        • 멘토씨리즈 자바 (14)
        • 2024 수제비 정보처리기사 (7)
      • 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Notion
  • 공지사항

  • 인기 글

  • 태그

    오블완
    2-layered 아키텍처
    수제비
    정처기
    정처기 실기
    오버로딩
    MVC
    codeup 4891 : 행복
    Di
    html
    Spring
    어노테이션
    정보처리기사
    생성자
    aop
    ViewResolver
    객체지향
    java
    이벤트 스케줄러
    @service
    스프링 프레임워크
    @repository
    jsp
    @Component
    티스토리챌린지
    상속
    recoverabledataaccessexception
    DispatcherServlet
    정보처리기사 실기
    멘토씨리즈 자바
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
yn98
[Python] CSV 데이터 시각화하기 2

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.