상세 컨텐츠

본문 제목

대중교통 데이터 시각화 하기 2

데이터분석/실습

by 2^7 2022. 4. 26. 15:20

본문

2. 유무임 승하차 인원이 가장 많은 역은 어딜까?

  • 데이터를 읽어온다
  • 모든 역의 데이터를 바탕으로 유임 승차, 유임 하차, 무임 승차, 무임 하차 인원이 가장 많은 역을 찾는다.
  • 각각의 인원이 가장 많은 역을 출력한다.

 

이번에는 4개 종류의 데이터를 확인해야 한다. 따라서 인원수를 저장할 공간과, 역의 정보를 저장할 공간이 각 4개씩 필요하다. 

다루고자 하는 데이터가 인덱스 [4] ~ [7] 까지 순서대로 있으니 반복문을 활용하여 처리한다.

import csv
f = open('subwayfee.csv')
data = csv.reader(f)
next(data)
mx = [0] * 4
mx_station = [''] * 4              # 데이터를 저장할 공간을 4개씩 생성
label = ['유임승차','유임하차','무임승차','무임하차']

for row in data :                  
    for i in range(4,8) :              # 4번부터 7번까지 인덱스를 반복하여 처리 
        row[i] = int(row[i])
        if row[i] > mx[i-4] :                       
            mx[i-4] = row[i]
            mx_station[i-4] = row[3] + ' ' + row[1]  #해당 역이 저장된 값보다 클 경우 값을 갱신
            
for i in range(4) :
    print(mx_station[i], mx[i])    #해당 값을 출력


3. 모든 역의 유무임 승하차 비율은 어떻게 될까

각 역의 유무임 승하차 비율을 확인 하고자 하는데 결과를 잘 나타내기 위해선 파이 차트를 활용하면 좋을 것 같다.

위에서 작성한 코드 일부를 수정하여 파이차트로 나타내었다.

import csv
import matplotlib.pyplot as plt
f = open('subwayfee.csv')
data = csv.reader(f)
next(data)
label = ['유임승차','유임하차','무임승차','무임하차']
for row in data :
    for i in range(4,8) :
        row[i] = int(row[i])
    #plt.figure(dpi = 300)
    plt.pie(row[4:8])      
    plt.axis('equal')
    plt.show()

 위 코드의 결과는 어떤 역인지? 비율의 대한 수치 등 보완할 점이 있다.

이번에는 역 이름을 제목으로 하고 각 비율과 레이블의 색상을 추가하여 작성했다.

import csv
import matplotlib.pyplot as plt
f = open('subwayfee.csv')
data = csv.reader(f)
next(data)
label = ['유임승차','유임하차','무임승차','무임하차']
c = ['#14CCC0', '#389993', '#FF1C6A', '#CC14AF']
plt.rc('font', family = 'Malgun Gothic')
for row in data :
    for i in range(4,8) :
        row[i] = int(row[i])
    plt.figure(dpi = 300)
    plt.title(row[3] + ' ' + row[1])
    plt.pie(row[4:8], labels = label, colors = c, autopct = '%1.f%%')
    plt.axis('equal')
    plt.show()

각 역마다의 유,무임 승하차 비율의 이미지가 생성되었다. 각 이미지를 하나씩 저장하는 것은 매우 귀찮으므로 각 이미지를 저장하는 코드를 추가하여 실행하면 각 역마다의 이미지를 저장할 수 있다.

plt.savefig(row[3] + ' ' + row[1] + '.png')

각 이미지 파일로 저장하는 코드

 

참고 서적 : 모두의 데이터분석 with파이썬

 

728x90

관련글 더보기