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파이썬
서울시 CCTV 현황 분석 (0) | 2022.05.31 |
---|---|
운동을 하지 않는 이유 (0) | 2022.04.29 |
대중교통 데이터 시각화 하기 1 (0) | 2022.04.26 |
우리 동네 인구 구조 시각화 하기 (0) | 2022.04.26 |
기온 공공 데이터 활용 데이터 분석하기 (0) | 2022.04.26 |