garret

[Python] seaborn 그래프 위에 숫자 표시하기 본문

Data/Data visualization

[Python] seaborn 그래프 위에 숫자 표시하기

_Sun_ 2023. 3. 13. 23:19

사용데이터: Dacon의 영화 관람객 데이터

 

영화 관객수 예측 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

 

데이터 불러오기

간단하게 train 데이터만 불러왔다

train = pd.read_csv('movies_train.csv')

데이터의 컬럼 구성은 아래와 같다

  • title: 영화 제목
  • distributor: 배급사
  • genre : 장르
  • release_time: 개봉일
  • time: 상영시간(분)
  • screening_rat : 상영등급
  • director: 감독이름
  • dir_prev_bfnum : 해당감독이 이 영화를 만들기 전 제작에 참여한 영화에서의 평균 관객수(단 관객수가 알려지지 않은 영화 제외)
  • dif_prev_num : 해당감독이 이 영화를 만들기 전 제작에 참여한 영화의 개수(단, 관객수가 알려지지 않은 영화 제외)
  • num_staff : 스텝수
  • num_actor: 주연배우수
  • box_off_num: 관객수

 

seaborn 그래프 그리기

import seaborn as sns

ax= sns.countplot(x='genre',data=train, order=train['genre'].value_counts().index)

for p in ax.patches:
  height = p.get_height()
  ax.text(p.get_x() + p.get_width() / 2., height + 3, height, ha = 'center', size = 9)
ax.set_ylim(0,250)
plt.xticks(rotation=45)

plt.title('장르별 영화 개수')
plt.show()

 

get_height(): bar의 세로길이

get_width() : bar의 가로길이

get_x() : x축의 가장 왼쪽 부분 

 

 

추가 - 반올림한 값을 text로 넣고 싶을 때

ax.text(p.get_x() + p.get_width() / 2., height + 3, round(height,1), ha = 'center', size = 9)

get_height()한 값, height에 round함수 적용 

 

 

참고 : round()

1의 자리에서 반올림 : round(num,-1)

10의 자리에서 반올림: round(num,-2)

소수 첫번째 자리에서 반올림: round(num)

소수 두번째 자리에서 반올림: round(num,1)