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

Matplotlib로 Python/Pandas DataFrame 주파수 플롯 그리기

Matplotlib으로 Pandas DataFrame 주파수 플롯 그리기

Matplotlib을 사용하면 Python/Pandas 데이터프레임의 데이터 분포를 손쉽게 주파수 플롯(frequency plot)으로 시각화할 수 있습니다. 핵심은 value_counts() 메서드로 각 고유값의 등장 횟수를 집계한 뒤, 이를 막대그래프로 그리는 것입니다. 아래 단계를 따라 진행해 보세요.

구현 단계

  • figure.figsize로 그림 크기를 설정하고, figure.autolayout으로 서브플롯 사이와 주변의 여백(padding)을 자동 조정합니다.
  • plt.subplots()를 호출해 그림(figure)과 축(ax) 객체를 생성합니다.
  • 2차원이며 크기가 가변적이고, 서로 다른 자료형을 담을 수 있는 표 형태의 데이터(DataFrame)를 만듭니다.
  • value_counts()를 사용해 고유값별 개수를 담은 시리즈(Series)를 반환받습니다.
  • kind='bar' 옵션으로 막대그래프를 그리고, xlabelylabel으로 축 레이블을 지정합니다.
  • 그림을 화면에 표시하려면 show() 메서드를 호출합니다.

예제 코드

import pandas as pd
from matplotlib import pyplot as plt

plt.rcParams['figure.figsize'] = [7.50, 3.50]
plt.rcParams['figure.autolayout'] = True

fig, ax = plt.subplots()

df = pd.DataFrame({'numbers': [2, 4, 1, 4, 3, 2, 1, 3, 2, 4]})
df['numbers'].value_counts().plot(ax=ax, kind='bar', xlabel='numbers', ylabel='frequency')

plt.show()

value_counts() 메서드는 각 고유값이 나타난 횟수를 내림차순으로 정렬한 시리즈를 반환합니다. 위 예제에서는 숫자 2와 4가 각각 3번, 1과 3이 각각 2번 나타나므로, x축에는 'numbers'의 고유값이, y축에는 해당 빈도(frequency)가 표시된 막대그래프가 그려집니다.

실행 결과

Matplotlib로 Python/Pandas DataFrame 주파수 플롯 그리기