콘텐츠로 건너뛰기

파이썬 튜토리얼: pyplot hist 사용 방법

[

파이썬 히스토그램 그리기: NumPy, Matplotlib, pandas & Seaborn

순수 파이썬으로 히스토그램 생성하기

  • 히스토그램을 그릴 준비를 할 때, 구간(bin) 대신 어떤 값이 몇 번 나타나는지 보고하는 것이 가장 간단합니다.
  • 이 작업에는 파이썬 딕셔너리가 적합합니다.
# 정렬하지 않아도 됩니다.
a = (0, 1, 1, 1, 2, 3, 7, 7, 23)
def count_elements(seq) -> dict:
"""seq에서 요소들을 계산합니다."""
hist = {}
for i in seq:
hist[i] = hist.get(i, 0) + 1
return hist
counted = count_elements(a)
counted
# 출력: {0: 1, 1: 3, 2: 1, 3: 1, 7: 2, 23: 1}
  • count_elements() 함수는 시퀀스에서 고유한 요소를 키로, 해당 요소의 빈도수를 값으로 갖는 딕셔너리를 반환합니다.
  • seq 반복문에서 hist[i] = hist.get(i, 0) + 1와 같이, “시퀀스의 각 요소에 대해 hist에서 해당 값에 1을 더합니다.”라고 말합니다.
  • 실제로 파이썬의 표준 라이브러리에 있는 collections.Counter 클래스가 이 작업을 수행합니다.
from collections import Counter
recounted = Counter(a)
recounted
# 출력: Counter({0: 1, 1: 3, 3: 1, 2: 1, 7: 2, 23: 1})
  • ”실제로 수작업으로 작성한 함수는” 정상적으로 작동하는 것을 확인할 수 있습니다.

NumPy를 사용하여 기반 작업 수행하기

  • 파이썬에서 데이터의 히스토그램을 계산하고 시각화하기 위해 NumPy를 사용할 수 있습니다.
import numpy as np
# 데이터 생성
np.random.seed(0)
x = np.random.normal(0, 1, 1000)
# 히스토그램 계산
counts, bin_edges = np.histogram(x, bins=10)
# 결과 출력
print(counts)
print(bin_edges)
  • np.histogram() 함수는 주어진 데이터 x를 바탕으로 히스토그램 계산을 수행합니다. bins 파라미터를 통해 구간의 개수를 지정할 수 있습니다.
  • counts는 구간별 데이터의 개수를 담고 있는 배열입니다.
  • bin_edges는 구간들의 경계값을 담고 있는 배열입니다.

Matplotlib와 pandas를 사용하여 히스토그램 시각화하기

  • NumPy를 사용하여 계산한 히스토그램 데이터를 시각화하기 위해 Matplotlibpandas를 사용할 수 있습니다.
import matplotlib.pyplot as plt
import pandas as pd
# 데이터 생성
np.random.seed(0)
x = np.random.normal(0, 1, 1000)
# 히스토그램 계산
counts, bin_edges = np.histogram(x, bins=10)
# pandas로 데이터프레임 생성
df = pd.DataFrame({"counts": counts, "bin_edges": bin_edges[:-1]})
# Matplotlib로 시각화
plt.bar(df["bin_edges"], df["counts"])
plt.xlabel("bins")
plt.ylabel("counts")
plt.title("Histogram")
plt.show()
  • 계산된 countsbin_edges를 활용하여 pandas의 데이터프레임을 생성합니다.
  • Matplotlib을 사용하여 데이터프레임을 시각화합니다.
  • 수집된 데이터를 기반으로 막대 그래프를 그려 결과를 출력합니다.

Seaborn을 사용한 고급 시각화

  • Seaborn은 보다 고급화된 히스토그램 시각화를 제공합니다.
import seaborn as sns
# 데이터 생성
np.random.seed(0)
x = np.random.normal(0, 1, 1000)
# Seaborn으로 시각화
sns.distplot(x, bins=10)
plt.xlabel("x")
plt.ylabel("Density")
plt.title("Histogram with KDE")
plt.show()
  • Seaborndistplot() 함수를 활용하여 히스토그램과 KDE(Kernel Density Estimate)을 함께 시각화합니다.
  • 수집된 데이터를 기반으로 밀도 그래프와 히스토그램을 함께 출력합니다.

정리

  • 파이썬에서 히스토그램을 그리기 위해 NumPy, Matplotlib, pandas, Seaborn을 활용할 수 있습니다.
  • 각 라이브러리를 사용하여 히스토그램을 계산하고 시각화하는 방법을 상세하게 알아보았습니다.
  • 다양한 선택과 기능을 갖춘 생산성 높은 Python 히스토그램 플롯을 만들 수 있습니다.