ㅅㅇ
matplotlib_ 02_5 각종 그래프 그리기 _ 히스토그램 (histogram) 본문
matplotlib_ 02_5 각종 그래프 그리기 _ 히스토그램 (histogram)
SO__OS 2022. 6. 16. 20:55Pandas_ 02_5 각종 그래프 그리기 _ 히스토그램 (histogram)
1. 히스토그램
- 표로 된 도수 분포표를 그래프로 나타낸 것.
- 도수분포표: 특정 그룹안에 값의 빈도를 나타낸 표
- 주로 연속형 자료를 특정 구간으로 나눠 그 빈도를 확인한다.
- 빈도 확인이나 분포를 볼때 사용한다.
- 그래프
X축 : 계급(변수구간)의 대표값, Y축 : 빈도수
- hist( data [, bins = 계급개수] ) 메소드를 사용
- data: 리스트형의 객체를 전달한다.
- bins : 동일한 간격으로 나눌 구간의 갯수 def : 10 - > 동일한 간격인 10개의 구간으로 나눈다.
크게 나눌수록 세분화하여 볼 수 있다.
2. 히스토그램 그리기
** 지정한 정규분포를 따르는 임의수(난수)를 가진 넘파이배열을 반환
# 평균이 100이고 표준편차가 10인 정규분포를 따르는 임의수(난수 - random 값) 1000개를 생성
# 정규분포 시그마(식스시그마)에 따른다. - > 평균 100 기준으로 표편10 이기에 거의 70~130 사이의 999개
data = np.random.normal(100, 10, 1000)
이 data의 정규 분포를 히스토그램 그래프로 보자.
연속된 데이터를 가진 해당 데이터의 각각의 값 자체를 보는 것은 목적이 아니다.
특정 범위로 묶어서 범위별 몇 개가 있는지 분포정도를 보는 것이 목적이다. => 히스토그램
- 히스토그램 그래프 그리기 코드
data의 값들을 정렬하여 500개의 구간으로 동일하게 나눈다. 그리고 구간 별로 데이터의 수를 count 한다.
count 한 수량을 구간마다 표시하였다.
나눈 구간은 x축에 표시하고, 구간 별 수량 데이터의 수는 y축으로 볼 수 있다. - > 분포도
# histogram 그래프
plt.figure(figsize = (10,8))
# 동일한 간격으로 500개 구간 나눈다.
plt.hist(data, bins = 500)
plt.xlabel('bins') # 값의 분포 구간
plt.ylabel('수량') # 해당 범위에 몇 개가 있는지
plt.show()
3. 히스토그램 활용
pandas ' 식당에서 팁을 지불한 손님의 정보를 모아둔 데이터 셋 ' 을 히스토그램로 그리기
tip 금액 데이터의 값들을 구간으로 묶어 어느 범위에 많이 분포해있는 지 보고 싶다.
즉, 데이터프레임 중 연속된 데이터를 가진 컬럼의 구간별 분포도를 확인하고 싶은 것.
- total_bill 컬럼 데이터의 분포
plt.hist(tips['total_bill'], bins=30)
plt.show()
- tip 분포
plt.hist(tips['tip'], bins = 30)
plt.show()
cf ) 범주형 데이터는 히스토그램으로 분포도를 볼 수 있을까?
smoker 컬럼의 데이터는 값이 yes와 no로 이뤄진 범주형 데이터이다.
구간별 데이터 값의 분포도를 보는 것이 중요한 연속형 데이터와 달리,
범주형데이터는 각 범주별의 데이터 차지 비율를 보는 것이 중요하다.
r = tips['smoker'].value_counts()
# plt.bar(r.index, r)
plt.pie(r, labels = r.index, autopct = '%.2f%%')
plt.show()
'AI_STUDY > 데이터 시각화 Matplotlib Seaborn Pandas' 카테고리의 다른 글
Seaborn _ 데이터 시각화 (0) | 2022.06.18 |
---|---|
matplotlib_ 02_6 각종 그래프 그리기 _ 상자그래프(Boxplot) (0) | 2022.06.16 |
matplotlib_ 02_4 각종 그래프 그리기 _ 파이차트 (Pie Chart) (0) | 2022.06.16 |
matplotlib_ 02_3 각종 그래프 그리기 _ 막대그래프(Bar plot) (0) | 2022.06.16 |
matplotlib_ 02_2 각종 그래프 그리기 _ 산점도 (Scatter Plot) (0) | 2022.06.16 |