본문 바로가기
Python/seaborn & matplotlib

pie, barplot 차트 (+glob함수로 다중 데이터 불러오기)

by Mr.DonyStark 2024. 2. 7.

□ 라이브러리 호출 및 한글 설정

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import glob

 

□ 다중 데이터 불러오기 및 불러오면서 데이터별 전처리(컬럼추가 및 값 넣기)

#파일 불러오기
child_data = glob.glob('C:/python/DataScience/Data/data/python_data/names/yob20*')
#불러온 파일을 저장할 빈 리스트 생성
child_list = list()
#반복문을 활용하여 데이터 집어 넣기
for i in child_data:
    year = i.split('yob')[1].split('.')[0]  #불러온 파일경로 및 파일명을 split하여 년도 추출
    df = pd.read_csv(i, header=None)
    df['year'] = year #불러온 파일별 year 컬럼 생성 및 split으로 추출한 year갑 저장
    child_list.append(df)
child_concat = pd.concat(child_list) #데이터 병합
#데이터 컬럼명 지정
child_concat.columns = ['name', 'sex', 'counting', 'year']

 

□ 집계함수를 사용하여 데이터 추출 : .groupby(필드명1).sum(필드명2)

sex_counts = child_concat.groupby('sex').sum('counting')

□ 파이형 차트 생성

# Figure 및 Subplot 생성
fig, ax = plt.subplots()
# 파이 그래프 그리기
ax.pie(sex_counts['counting'], labels=labels, autopct='%1.1f%%', colors=['skyblue', 'pink'], startangle=90)
# 그래프 제목 설정
ax.set_title('출생한 년도별 남녀수 합')

 

□ 그래프 객체 및 데이터지정을 통한 countplot 생성

  ○ hue 다변량 데이터를 그래프로 표현할 때는 색상으로 구분 설정

#라벨 지정
labels = [f'{sex_counts.index[0]}: {sex_counts.loc[sex_counts.index[0], "counting"]} 명',
            f'{sex_counts.index[1]}: {sex_counts.loc[sex_counts.index[1], "counting"]} 명']
year_counts = child_concat.groupby(['year','sex']).count()
#틀생성
count, ax =plt.subplots()
plt.xticks(fontsize= 5)  #x축열 폰트사이즈
#barplot 사용
sns.barplot(data=year_counts, x='year', y='counting',hue='sex', palette='viridis',ax=ax) #palette 막대그래프 색상