AI 기본 과정

Python을 이용한 데이터 분석 - Matplotlib (2)

넝구리 2022. 5. 5. 18:03

ICT이노베이션스퀘어 AI기본과정(CNU) 교육을 듣고 정리한 내용입니다.

AI기본과정(CNU) 교육 자료를 참고하였습니다.


인구 공공데이터

 

인구 구조 시각화

 

age.csv
2.21MB

 

 

1. 인구 구조 시각화

 

우리 동네의 인구 데이터 출력

import csv

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

for row in population:
    if "혜화동" in row[0]:
        print(row)

 

우리 동네의 연령별 인구 수 출력

import csv

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

for row in population:
    if "혜화동" in row[0]:
        for i in row[3:]:
            print(i)

 

우리 동네의 연령별 인구 수를 리스트에 저장

import csv

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

hyehwa = []

for row in population:
    if "혜화동" in row[0]:
        for i in row[3:]:
            hyehwa.append(int(i))     # 문자 데이터를 정수로 변환하여 hyehwa 리스트에 추가

print(hyehwa)

 

우리 동네의 연령별 인구 수 데이터 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

hyehwa = []

for row in population:
    if "혜화동" in row[0]:
        for i in row[3:]:
            hyehwa.append(int(i))

plt.style.use("ggplot")     # 격자무늬 스타일 지정
plt.plot(hyehwa)
plt.show()

혜화동 연령별 인구

 

지역명을 입력받아서 연령별 인구 수 데이터 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

region = input("지역명(읍면동 단위)을 입력하세요:")

result = []

for row in population:
    if region in row[0]:
        for i in row[3:]:
            result.append(int(i))

plt.style.use("ggplot")
plt.plot(result)
plt.show()

 

 

 

인구 구조의 다양한 시각화

 

1. 막대그래프

 

bar(막대를 표시할 위치, 막대의 높이)

import matplotlib.pyplot as plt

plt.bar([0,3,7,9,15], [3,4,5,8,2])
plt.show()

 

막대그래프를 활용한 우리 동네 인구 구조 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

hyehwa = []

for row in population:
    if "혜화동" in row[0]:
        for i in row[3:]:
            hyehwa.append(int(i))

plt.bar(range(101), hyehwa)
plt.show()

 

수평 막대그래프를 활용한 우리 동네 인구 구조 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/age.csv')
population = csv.reader(f)

hyehwa = []

for row in population:
    if "혜화동" in row[0]:
        for i in row[3:]:
            hyehwa.append(int(i))

plt.barh(range(101), hyehwa)
plt.show()

 

 

2. 항아리 모양 그래프

 

gender.csv
4.03MB

 

성별 데이터 저장하기

남성 데이터 : 3 ~ 103번 인덱스 데이터를 순차적으로 저장

여성 데이터 : -1 ~ -101번 인덱스 데이터를 순차적으로 저장한 후 뒤집기

import csv

f = open('C:/Users/82109/OneDrive/바탕 화면/gender.csv')
gender = csv.reader(f)

male = []
female = []

for row in gender:
    if "한남동" in row[0]:
        for i in range(0,101):
            male.append(int(row[i+3]))
            female.append(int(row[-(i+1)]))

female.reverse()

 

성별 데이터를 수평 막대그래프로 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/gender.csv')
gender = csv.reader(f)

male = []
female = []

for row in gender:
    if "한남동" in row[0]:
        for i in range(0,101):
            male.append(int(row[i+3]))
            female.append(int(row[-(i+1)]))

female.reverse()

plt.barh(range(101), male)
plt.barh(range(101), female)
plt.show()

 

성별 데이터를 항아리 모양 그래프로 시각화

import csv
import matplotlib.pyplot as plt

f = open('C:/Users/82109/OneDrive/바탕 화면/gender.csv')
gender = csv.reader(f)

region = input("지역명을 입력하세요:")

male = []
female = []

for row in gender:
    if region in row[0]:
        for i in range(0,101):
            male.append(-int(row[i+3]))     # 마이너스 부호를 넣어 음수로 변경
            female.append(int(row[-(i+1)]))

female.reverse()

plt.rc("font", family = "Malgun Gothic")
plt.rcParams["axes.unicode_minus"] = False     # 마이너스 부호 깨짐 현상 해결
plt.title("남녀 성별 인구 분포")
plt.barh(range(101), male, label = "남성")
plt.barh(range(101), female, label = "여성")
plt.legend()
plt.show()