본문 바로가기

데이터 교육/파이썬

[파이썬] 막대 그래프 그리기: barplot

문제: 2023년 영화별 관람자 수를 막대그래프로 표현하시오

 

 

 

1. 라이브러리 출력

표와 시각화 툴의 라이브러리를 출력한다

> pandas: 테이블(표)형식의 데이터를 다루는 라이브러리

> seaborn: 데이터를 시각화해주 라이브러리

코드 입력
import seaborn as sns
import pandas as pd

 

 

 

 

 

2. 데이터 입력

그래프로 표현할 값(영화 제목과 관객수를)을 각각 리스트 형태로 입력하고,

데이터 프레임(df)을 출력하면

표의 형태로 데이터를 확인할 수 있다.

코드 입력
movie_title = ['슬램덩크''존윅4''범죄도시3''엘리멘탈''더 마블스']
audience = [47754791924768106828137237592688915]

data = {'영화제목' : movie_title, '누적관객' : audience}
df = pd.DataFrame(data)
df

 

 

 

 

 

3. 막대그래프 그리기

막대 그래프를 삽입하는 라이브러리인 sns.barplot 입력한다음

데이터프레임에서 지정해 놓은 '영화제목, 누적관객'값을 x,y축 명제에 각각 대입한다.

코드 입력
sns.barplot(data = df, x = '영화제목', y = '누적관객')

 

상기의 코드를 출력하면, x y 값을 시각화한 막대그래프를 볼 수 있다.

 

 

 

 

 

 

4. 순서 정렬: 오름차순, 내림차순

01) 오름차순

중구난방의 데이터를, 원하는 순서 기준으로 나열하고 싶다면 order 코드를 사용한다

코드 입력
sns.barplot(data = df, x = '영화제목', y = '누적관객',
             order = df.sort_values('누적관객').영화제목)

 

 

>> 기본 오름차순으로 나열이 된다.

 

 

02) 내림차순

내림차순으로 설정하기 위해서는 ascending = False 를 추가한다.

코드 입력
sns.barplot(data = df, x = '영화제목', y = '누적관객',
             order = df.sort_values('누적관객', ascending = False).영화제목)

 

 

 

 

 

 

5. 정리

01) 복잡한 y축을 가시성 좋게 정리

코드 입력
chart = sns.barplot(data = df, x = '영화제목', y = '누적관객',
             order = df.sort_values('누적관객', ascending = False).영화제목)

ylabels = ['{:,.0f}'.format(i) '만 명' for i in chart.get_yticks() / 10000]
chart.set_yticklabels(ylabels)

 

>> ylables의 리스트 코드를 해석하자면

'{:,.0f}'.format(i) 소수점자리는 없는 형태로 만들기
'만 명' '만명'이라는 단위 붙이기
chart.get_yticks() / 10000 '차트안에 있는 숫자 / 10000'을 해서 정수로 떨어지게 표현하기

 

 

 

 

 

 

 

02) 그 외 가시성 더하기

*차트 색상바꾸기

기존 차트 코드에 [ , color = '원하는 색상' ] 추가!

 

*폰트 사이즈 변경

기존 코드에 폰트 사이즈 코드 추가

코드 입력
plt.xlabel('누적관객', fontsize = 15)
plt.ylabel('영화제목', fontsize = 15)
plt.title('영화 별 누적관객수', fontsize = 20)

 

 

*차트 자체 크기 변경

코드 입력
sns.set(rc={'figure.figsize':(가로, 세로)})

 

 

 


출처: 패스트 캠퍼스 - 한 번에 끝내는 데이터 분석 초격차 패키지 Online: Python