Menu
CoddyTech

히스토그램

Coddy Machine Learning 여정의 데이터와 시각화 섹션에 포함된 레슨. 60개 중 27번째.

12건의 헬프 데스크 통화 시간(분)입니다. 히스토그램은 이와 같은 숫자들이 어떻게 분포하는지 보여 줍니다. 값의 범위를 같은 크기의 구간으로 나누고 각 구간에 속하는 값을 셉니다.

calls = [2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 9, 14]
fig, ax = plt.subplots()
counts, edges, bars = ax.hist(calls, bins=4)
print(counts)
print(edges)
plt.show()

경계가 2, 5, 8, 11, 14인 4개 구간으로 나눈 통화 시간 12건의 히스토그램: 통화 건수가 각각 4, 6, 1, 1인 막대

대부분의 통화는 2~8분이 걸립니다. ax.hist는 집계한 값도 반환하므로, 다음과 같이 출력됩니다.

[4. 6. 1. 1.]
[ 2.  5.  8. 11. 14.]

4개의 구간에는 5개의 edges가 필요합니다. 경계에 있는 값은 오른쪽 구간에 들어가며, 가장 큰 값은 예외로 마지막 구간에 남습니다.

challenge icon

챌린지

중급

한 과수원에서 사과 120개의 무게를 weights (그램)로 측정했습니다. 프로그램은 구간의 개수를 읽습니다. 시작 코드는 제목과 레이블이 있는 차트를 설정하고 표시합니다.

  1. 그 구간 개수로 weights의 히스토그램을 그리고, ax.hist가 반환하는 값을 저장합니다.
  2. 아래와 같이 가장 많은 사과가 포함된 구간의 경계값을 소수점 첫째 자리까지 반올림하고 개수를 출력합니다.

다른 과수원과 구간 6개를 사용하면, 프로그램은 다음 줄을 출력하고 Coddy가 차트를 설명합니다.

Fullest bin: 153.6 to 167.8 g, 38 apples

차트는 다음과 같습니다.

Apple Weights라는 제목의 히스토그램으로, 약 125~210그램 범위에 막대 6개가 있으며, 가장 높은 막대는 154~168그램 구간의 사과 38개를 나타냅니다

직접 해보기

import numpy as np
import matplotlib.pyplot as plt

bins = int(input())

# 아래 줄들을 변경하지 마세요
rng = np.random.default_rng(11)
weights = rng.normal(150, 20, size=120)
fig, ax = plt.subplots()
ax.set_title("Apple Weights")
ax.set_xlabel("Weight (g)")
ax.set_ylabel("Apples")

# 아래에 코드를 작성하세요

# 아래 줄을 변경하지 마세요
plt.show()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

데이터와 시각화의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러