-
- 행정안전부에서 인구 데이터를 내려받기
-
- 본인 동네 찾아보기
-
-
인구 데이터 파일을 읽어온다.
-
전체 데이터에서 한 줄씩 반복해서 읽어온다.
-
우리 동네에 대한 데이터인지 확인한다.
-
우리 동네일 경우 0세부터 100세 이상까지의 인구수를 순서대로 저장한다.
-
저장된 연령별 인구수 데이터를 시각화한다.
데이터 불러오기
import csv f = open('age.csv') data = csv.reader(f) result=[] for row in data: if '신도림' in row[0]: for i in row[3:]: result.append(int(i)) print(result)
시각화하기
import matplotlib.pyplot as plt plt.style.use('ggplot') plt.plot(result) plt.show()
-
먼저 인구 구조가 궁금한 지역의 이름을 input() 함수로 입력 받기.
import csv
f = open('age.csv')
data = csv.reader(f)
result=[]
name = input('지역 입력:')
for row in data:
if name in row[0]:
for i in row[3:]:
result.append(int(i.replace(',','')))
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.rc('font', family = 'Malgun Gothic')
plt.title(name+'지역의 인구 구조')
plt.plot(result)
plt.show()
-
-
bar() 함수
bar(막대를 표시할 위치, 막대의 높이)
-
barh() 함수
plt.barh(range(101),result)
-
-
-
데이터 수집하기
import csv import matplotlib.pyplot as plt f= open('gender.csv') data = csv.reader(f) m=[] f=[] for row in data: for i in row[3:104]: m.append(-int(i)) for i in row[106:]: m.append(int(i))
-
데이터 시각화하기
plt.barh(range(101),m) plt.barh(range(101),f) plt.show()
-
-
-
항아리 모양 그래프
import csv import matplotlib.pyplot as plt f= open('gender.csv') data = csv.reader(f) m=[] f=[] for row in data: for i in row[3:104]: m.append(-int(i)) for i in row[106:]: m.append(int(i)) plt.style.use('ggplot') plt.figure(figsize=(10,5),dpi =300) plt.rc('font',family='Malgun Gothic') plt.rcParams['axes.unicode_minus'] = False plt.title(name+' 지역의 남녀 성병 인구 분포') plt.barh(range(101),m) plt.barh(range(101),f) plt.show()
-
데이터의 개숫를 출력
print(len(m), len(f))
-
입력받는 코드 추가, break 추가
name = input('지역 입력:') for row in data: if name in row[0]: for i in row[3:104]: m.append(-int(i)) for i in row[106:]: f.append(int(i)) break
-
-
-
pie() 함수
plt.pie([10,20])
-
-
import matplotlib.pyplot as plt plt.rc('font', family = 'Malgun Gothic') color = ['crimson', 'darkcyan'] plt.axis('equal') plt.pie(size, labels = ['남', '여'], autopct='%.1%%', colors=color,startangle=90) plt.title(name+'지역의 남녀 성별 비율') plt.show()
-
import csv import matplotlib.pyplot as plt f= open('gender.csv') data = csv.reader(f) m=[] f=[] name = input('동네 입력:') for row in data: if name in row[0]: for i in range(3,104): m.append(int(row[i])) f.append(int(row[i+103])) break plt.plot(m, label='Male') plt.plot(f, label='Female') plt.legend() plt.show()
-
import csv import matplotlib.pyplot as plt f= open('gender.csv') data = csv.reader(f) result=[] name = input('동네 입력:') for row in data: if name in row[0]: for i in range(3,104): result.append(int(row[i])-int(row[i+103])) break plt.bar(range(101),result) plt.show()
-
-
데이터 간의 관계를 파악하느데 도움이 되는 산점도
-
산점도는 가로축과 세로축을 기준으로 두 요소가 서로 어떤 관계를 맺고 있는지를 쉽게 나타낸 그래프
-
버블 차트: 데이터를 의미하는 점들의 분포로 상관관계를 파악할 수 있다는 점에서 산점도와 비슷
-
-
plt.scatter([1,2,3,4],[10,20,30,40]) plt.show()
-
plt.scatter([1,2,3,4],[10,20,30,40], s=[100,200,250,300], c=['red','blue','green', 'gold']) plt.show()
plt.scatter([1,2,3,4],[10,20,30,40], s=[100,200,250,300], c=range(4)) plt.colorbar() plt.show()
plt.scatter([1,2,3,4],[10,20,30,40], s=[100,200,250,300], c=range(4),cmap='jet') plt.colorbar() plt.show()
-
import csv import matplotlib.pyplot as plt f= open('gender.csv') data = csv.reader(f) m=[] f=[] name = input('동네 입력:') for row in data: if name in row[0]: for i in range(3,104): m.append(int(row[i])) f.append(int(row[i+103])) break plt.scatter(m,f,c=range(101),alpha=0.5, cmap='jet') plt.colorbar() plt.plot(range(max(m)), range(max(m)),'g') plt.show()