ㅅㅇ
matplotlib_ 02_3 각종 그래프 그리기 _ 막대그래프(Bar plot) 본문
matplotlib_ 02_3 각종 그래프 그리기 _ 막대그래프(Bar plot)
SO__OS 2022. 6. 16. 12:20Pandas_ 02_3 각종 그래프 그리기 _ 막대그래프(Bar plot)
1. 막대그래프(Bar plot)
- 수량을 막대 형식으로 나타낸 그래프
- 수량을 표현할 때 사용. (ex. 범주형컬럼의 value_counts() 각 범주별 수량 갯수 )
1) 수직막대 : bar(x, height) 메소드 사용
- x: x값 - > 분류값(수량을 셀대상)
- height: 막대 높이 - > 개수 수량
2) 수평막대 : barh(y, width) 메소드
- 1번인수 : y값 - > 분류값(수량을 셀 대상)
- 2번인수: 막대 너비 - > 개수 수량
2. 막대그래프(Bar plot) 그리기
수직 .bar (대상 x, 수량 y, [width = 0~1] )
수평 .barh(대상 y, 수량 x, [hight = 0~1] )
- 막대 두께 조절
기본값 0.8 / 1이면 막대끼리 붙어버린다.
수평 : width = 0~1 실수, 수직 : hight = 0~1 실수
# 수직막대 그래프
plt.figure(figsize = (15,7))
plt.subplot(1,2,1)
plt.bar(fruits, counts, width=1) # (대상 x, 수량 y, width)
plt.title('수직막대그래프')
plt.xlabel('과일')
plt.ylabel('수량')
# 수평막대 그래프
plt.subplot(1,2,2)
plt.barh(fruits, counts, height = 0.5) # (대상 y, 수량 x, hight)
plt.title('수평막대그래프')
plt.xlabel('수량')
plt.ylabel('과일')
plt.show()
3. 막대그래프(Bar plot) 활용
pandas '강수량 추이 ' 데이터 프레임 을 막대그래프로 그리기
- 전처리
import pandas as pd
df = pd.read_excel('data/강수량.xlsx')
# 계절 컬럼을 현재 분석할 일 없다. - > 작업에 맞게 처리해주자.
# 계절 컬럼을 index로 빼주기
df.set_index('계절', inplace = True)
df
위 데이터프레임을 가지고 막대그래프을 그려볼 것이다.
1) 데이터레이블
- 막대 위에 수량값을 text 로 출력
- x좌표 : 0, 1, 2, 3
- y좌표 : 수량, 값
- 반복문 enumerate 사용하기
- x좌표 y좌표의 값은 x축과 y축의 tick 간격 비율에 따라 다르다.
- > 비율에 따라 맞춰서 보기 좋은 좌표값으로 설정해주기.
# 2009년 계절별 강수량 비교
plt.figure(figsize = (7,7))
plt.bar(df.index, df[2009])
for i, j in enumerate(df[2009]): # 값을 반복문 돌려서
plt.text(i-0.1, j+10, j)
plt.ylim(0, 850) # y축의 값의 범위를 지정
plt.grid(True)
plt.show()
2) 데이터프레임 통계값을 그래프로 표현해보기
막대그래프는 대상과 수량만 잘 생각해서 작성해주면 된다.
- 통계의 결과 : mean_rain Series ( round(df.mean(axis=1),2) )
대상 : mean_rain Series의 index
수량 : mean_rain Seires의 values
# 계절별 평균 강수량을 비교
mean_rain = round(df.mean(axis=1),2)
plt.bar(mean_rain.index, mean_rain.values)
plt.title('계절별 평균 강수량', fontsize = 20)
plt.xlabel('평균 강수량')
plt.ylabel('계절')
plt.grid(True)
plt.ylim(0,800)
for i,j in enumerate(mean_rain.values):
plt.text(i-0.15, j+10, j)
plt.show()
'AI_STUDY > 데이터 시각화 Matplotlib Seaborn Pandas' 카테고리의 다른 글
matplotlib_ 02_5 각종 그래프 그리기 _ 히스토그램 (histogram) (0) | 2022.06.16 |
---|---|
matplotlib_ 02_4 각종 그래프 그리기 _ 파이차트 (Pie Chart) (0) | 2022.06.16 |
matplotlib_ 02_2 각종 그래프 그리기 _ 산점도 (Scatter Plot) (0) | 2022.06.16 |
matplotlib_ 02_1 각종 그래프 그리기 _ 선 그래프 (line Graph) (0) | 2022.06.15 |
matplotlib_ 01 개요 & 설정값 (0) | 2022.06.15 |