Python/Matplotlib

Matplotlib) Bar chart : countplot 차트 그리기

567Rabbit 2024. 4. 15. 12:58

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

 

 

포켓몬데이터가 있다.

  id species generation_id height weight base_
experience
type_1 type_2
0 1 bulbasaur 1 0.7 6.9 64 grass poison
1 2 ivysaur 1 1.0 13.0 142 grass poison
2 3 venusaur 1 2.0 100.0 236 grass poison
3 4 charmander 1 0.6 8.5 62 fire NaN
4 5 charmeleon 1 1.1 19.0 142 fire NaN
... ... ... ... ... ... ... ... ...
802 803 poipole 7 0.6 1.8 189 poison NaN
803 804 naganadel 7 3.6 150.0 243 poison dragon
804 805 stakataka 7 5.5 820.0 257 rock steel
805 806 blacephalon 7 1.8 13.0 257 fire ghost
806 807 zeraora 7 1.5 44.5 270 electric NaN

 

 

df['generation_id'].value_counts()

generation_id
5    156
1    151
3    135
4    107
2    100
7     86
6     72
Name: count, dtype: int64

 

특정 컬럼이 카테고리컬 데이터일때, 각 value 별로 몇개씩 있는지를 차트로 한번에 나타내고 싶을때
seaborn의 countplot 함수 사용한다.

 

sb.countplot(data = df,x='generation_id')
plt.show()

 

sb.color_palette()

 

base_color= sb.color_palette()[1]   #주황색

 

sb.countplot(data = df,x='generation_id', color = base_color)
plt.show()

 

정렬하기 (오름차순)

 

base_order = df['generation_id'].value_counts().index

sb.countplot(data = df,x='generation_id', color = base_color, order= base_order)
plt.show()

 

 

 

 

정렬하기 (내림차순)

 

reverse_order = base_order[ : : -1]

sb.countplot(data = df,x='generation_id', color = base_color, order= reverse_order)
plt.show()

 

 

 

 

df['type_1'] 데이터로 그래프를 그려보도록 하자

 

 

sb.countplot(data = df,x='type_1', color = base_color)
plt.savefig('four.jpg')
plt.show()

 

 

 

 

정렬하고, xticks 각도 변경하기

 

base_order = df['type_1'].value_counts().index


sb.countplot(data=df, x='type_1', color=base_color, order=base_order)
plt.xticks(rotation=60)  # 기울기를 60도로 한다
plt.savefig('five.png')
plt.show()

 

 

 

 

x축을 y축으로 바꾸기

 

sb.countplot(data=df, y='type_1', color=base_color, order=base_order)
plt.show()