책 109 페이지에 나오는 '입력 프로그램'을 구현해보겠습니다.
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.tile(name + ' 지역의 인구 구조')
plt.plot(result)
plt.show()
input() 함수를 사용해 입력을 받고 있습니다.
한 가지 눈여겨 볼 부분은 replace() 함수입니다. 콤마(,)를 빈 문자로 바꾸고 있습니다.
코드를 사용하지 않고 엑셀을 이용해서 콤마를 직접 없애는 방법도 있습니다.
2가지 막대그래프
1. bar() 함수
import matplotlib.pyplot as plt
plt.bar([0, 1, 2, 4, 6, 10], [1, 2, 3, 5, 6, 7])
plt.show()
bar() 함수에서 첫 번째 값은 '막대를 표시할 위치', 두 번째 값은 '막대의 높이'입니다.
위치값을 직접 넣지 않고 range() 함수를 사용하는 방법이 있습니다.
plt.bar(range(6), [1, 2, 3, 5, 6, 7])
plt.show()
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)
import matplotlib.pyplot as plt
plt.bar(range(101), result)
plt.show()
result.append(int(i))는 엑셀을 이용해 직접 콤마를 삭제해줬을때 사용됩니다.
0부터 100세까지기 때문에 range(101)입니다.
2. barh() 함수
h가 아마 horizontal의 약자로 보입니다. 막대 그래프를 수평으로 그릴때 사용합니다.
plt.barh(range(101), result)
barh() 함수에서 range() 부분은 y축의 막대 위치가 됩니다.
'DATA STUDY > 모두의 데이터분석 with 파이썬' 카테고리의 다른 글
셋째 마당 - 인구 구조 다양한 형태로 시각화하기 UNIT 08-01 (0) | 2021.03.17 |
---|---|
셋째 마당 - 우리 동네 인구 구조 시각화하기 UNIT 07 (0) | 2021.03.16 |
둘째 마당 - 기온 데이터 다양하게 시각화 UNIT 06 (0) | 2021.03.07 |
둘째 마당 - 내 생일 기온 그래프 그리기(인코딩) UNIT 05 (0) | 2021.03.07 |
둘째 마당 - 기본 그래프 그리기 UNIT 04 - 02 (0) | 2021.03.06 |