콘텐츠로 건너뛰기

파이썬 히스토그램 그리기 방법을 소개합니다

[

Python 히스토그램 그리기: NumPy, Matplotlib, pandas & Seaborn

이 튜토리얼에서는 Python을 사용하여 범위와 기능을 선택할 수 있는 고객 제작 및 프레젠테이션용 Python 히스토그램 그래프를 제작할 수 있습니다.

만약 Python과 통계에 초급~중급 지식이 있다면, 이 글을 가지고 NumPy, Matplotlib, pandas 및 Seaborn과 같은 과학 스택 라이브러리를 사용하여 Python에서 히스토그램을 제작하고 그릴 수 있는 공식적인 가이드로 사용할 수 있습니다.

히스토그램은 거의 모든 대중에게 직관적으로 이해되는 확률 분포를 빠르게 확인할 수 있는 훌륭한 도구입니다. Python은 다양한 옵션을 제공하여 히스토그램을 제작하고 그릴 수 있습니다. 대부분의 사람들이 막대 그래프와 유사한 그래프로서 히스토그램을 알고 있습니다:

순수한 Python에서의 히스토그램

히스토그램을 그릴 준비를 할 때, bin으로 생각하기보다는 각 값이 얼마나 자주 나타나는지 보고하는 것이 가장 간단합니다. Python은 이 작업에 적합한 사전(dictionary) 자료형을 사용할 수 있습니다.

# 정렬이 필요하지 않습니다.
a = [0, 1, 1, 1, 2, 3, 7, 7, 23]
def count_elements(seq):
"""'seq'에서 요소들을 센다."""
hist = {}
for i in seq:
hist[i] = hist.get(i, 0) + 1
return hist
counted = count_elements(a)
counted

count_elements()는 시퀀스로부터 고유한 요소들을 키(key)로, 빈도(개수)를 값(value)으로 하는 사전(dictionary)을 반환합니다. seq의 각 요소에 대해서 hist[i] = hist.get(i, 0) + 1는 “시퀀스의 각 요소에 대해, hist에서 해당 값에 대한 값을 1 증가시키세요”라고 합니다.

실제로 이것은 Python 표준 라이브러리의 collections.Counter 클래스에서 수행되는 일과 정확히 동일한 동작입니다. Counter 클래스는 사실상 Python 사전(dictionary)를 상속하고 .update() 메서드를 재정의합니다.

from collections import Counter
recounted = Counter(a)
recounted

본인이 작성한 함수가 사실상 동일한 결과를 반환하는지 확인할 수 있습니다.

파이썬에서 NumPy를 사용한 히스토그램 계산 구축

이제 히스토그램을 보다 복잡하게 만들어보겠습니다. 이를 위해 NumPy를 사용하여 기존 데이터의 요약 정보로 히스토그램을 만들고 시각화하는 방법에 대해 알아보겠습니다.

import numpy as np
import matplotlib.pyplot as plt
# 난수 생성
np.random.seed(0)
data = np.random.randn(1000)
# 히스토그램 계산
hist, bin_edges = np.histogram(data, bins=10, range=(-5, 5))
# 계산된 히스토그램 시각화
plt.hist(data, bins=bin_edges)
plt.show()

여기서는 1000개의 난수를 생성하고, 이 난수로부터 범위가 -5부터 5까지인 10개의 bin으로 히스토그램을 계산합니다. 이후 계산된 히스토그램을 시각화합니다.

Matplotlib과 pandas를 사용한 히스토그램 시각화

여기서는 Matplotlib과 pandas를 사용하여 계산된 히스토그램을 시각화하는 방법을 알아보겠습니다.

import pandas as pd
# pandas Series 생성
data_series = pd.Series(data)
# 시각화
data_series.plot(kind='hist', bins=10, range=(-5, 5))
plt.show()

이번에는 계산된 히스토그램을 pandas Series로 변환하고, 이를 시각화합니다. plot() 메서드에 kind='hist' 옵션을 사용하여 히스토그램을 그릴 수 있습니다.

KDE (Kernel Density Estimate)를 사용한 히스토그램 시각화

이번에는 Kernel Density Estimate (KDE)를 사용하여 히스토그램을 시각화하는 방법을 알아보겠습니다.

import seaborn as sns
# KDE 플롯
sns.histplot(data, kde=True)
plt.show()

Seaborn 라이브러리의 histplot() 메서드에 kde=True 옵션을 사용하여 KDE가 포함된 히스토그램을 그릴 수 있습니다.

위의 예제들을 통해 순수 Python부터 NumPy, Matplotlib, pandas 및 Seaborn에 이르기까지 다양한 방법으로 히스토그램을 그리는 방법을 알아보았습니다. 이제 당신은 어떤 방법을 사용할지 선택할 수 있습니다.