파이썬 Python/파이썬

[8일차/파이썬] ★데이터 시각화 - 연습문제

하나비 HANABI 2023. 1. 4. 17:52

교재 <예제 중심의 파이썬 입문 - 황재호>

p.406

 

월별 카페 개수를 나타내는 막대 그래프

# p.406
# 연습문제1
from matplotlib import pyplot as plt

file = open('./data/12/cafe_2year.csv','r',encoding='UTF-8')
lines = file.readlines()
file.close() # 필요한 데이터를 위에서 다 가져왔으므로 파일 닫기

cafe_list=[]
for line in lines[1:]:
    temp = line[:-1].split(',')
    cafe_list.append(temp)

x=[]
y=[]
count = 0
for data in cafe_list[2:]:
    if count % 3 == 0:
        x.append(data[0])
        y.append(data[1])
    count += 1
    
plt.bar(x, y)
rc('font', family='Malgun Gothic')
font1 = {'color':'green'}
plt.title('전국의 월별 카페 수', fontdict = font1)
plt.show()

enumerate( ) : 인덱스와 값을 함께 리턴

mlist = ['a','b','c']
for idx,m in enumerate(mlist):
    print(idx, m)
'''
0 a
1 b
2 c
'''

enumerate 함수를 사용한 1번문제

x=[]
y=[]
for idx, data in enumerate(cafe_list[2:]):
    if idx % 3 == 0:
        x.append(data[0])
        y.append(data[1])

서울 종합병원의 의사 수 분포

# 연습문제6
from matplotlib import pyplot as plt

file = open('./data/12/doctor2.csv','r',encoding='UTF-8')
lines = file.readlines()
file.close() 


header = lines[0][:-1].split(',')
print(header)

doc_list=[]
for line in lines[1:]:
    temp = line[:-1].split(',')
    for i in range(1,5):
        temp[i] = int(temp[i])
    doc_list.append(temp)
print(doc_list)


seoul = doc_list[0]
p=[]
for i in range(1, len(seoul)):
    total = sum(seoul[1:])
    p.append(seoul[i]/total)   
    
print(p)

rc('font', family='Malgun Gothic')
plt.pie(p, labels=header[1:], autopct='%.1f%%', startangle=90, shadow=True, explode=(0,0.1,0,0))
plt.show()