collections.Counter를 사용해 히스토그램을 그리려면 Matplotlib의 bar() 메서드를 활용하면 됩니다. bar() 메서드 안에서 collections.Counter()를 호출하여 각 요소의 빈도수를 구하고, 이를 막대의 높이로 사용해 시각화할 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백(padding)을 조정합니다.
- 데이터 포인트로 이루어진 리스트를 생성합니다.
- collections.Counter()를 사용하여 딕셔너리 d를 만듭니다. 각 요소가 키(key), 빈도수가 값(value)으로 저장됩니다.
- d.keys()와 d.values()를 인자로 넘겨 plt.bar()로 막대 그래프를 그립니다.
- show() 메서드를 호출하여 그래프를 화면에 표시합니다.
예제 코드
import collections from matplotlib import pyplot as plt # 그림 크기 및 레이아웃 자동 조정 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 데이터 포인트 리스트 data = [0, 1, 2, 4, 1, 3, 0, 4, 1, 4, 3, 5, 6, 5, 2] # collections.Counter로 각 값의 빈도수 계산 d = collections.Counter(data) # 키(요소)와 값(빈도수)으로 막대 그래프 생성 plt.bar(d.keys(), d.values()) plt.show()
실행 결과
위 코드를 실행하면 데이터의 각 고유값이 x축에, 해당 값의 등장 횟수가 y축에 표시된 막대 그래프가 출력됩니다. 예를 들어 값 1은 세 번 나타나므로 높이 3의 막대가 그려집니다.
추가 팁
막대 그래프의 가독성을 높이고 싶다면 다음 옵션들을 활용할 수 있습니다:
- color 파라미터로 막대 색상을 지정할 수 있습니다. 예:
plt.bar(d.keys(), d.values(), color='skyblue') - edgecolor로 막대 테두리 색을 지정할 수 있습니다.
- width 파라미터로 막대의 두께를 조절할 수 있습니다.
- plt.xlabel(), plt.ylabel(), plt.title()을 사용해 축 레이블과 제목을 추가하면 그래프를 더 명확하게 전달할 수 있습니다.
이 방법은 범주형 데이터나 정수형 데이터의 분포를 빠르게 확인할 때 특히 유용합니다. collections.Counter는 해시 가능한(hashable) 모든 객체의 빈도를 계산할 수 있으므로, 문자열 리스트 등 다양한 데이터 유형에도 동일한 방식으로 적용할 수 있습니다.