Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib로 collections.Counter 히스토그램 그리는 방법

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) 모든 객체의 빈도를 계산할 수 있으므로, 문자열 리스트 등 다양한 데이터 유형에도 동일한 방식으로 적용할 수 있습니다.