시각화를 통한 데이터 드릴다운 1 – Bar Chart

Ryan·2025년 1월 14일

SQL/Python 분석

목록 보기
42/94

데이터 분석 과정을 진행할 때, 막대 그래프(Bar Chart)는 범주형(또는 이산형) 변수가 갖는 값을 시각적으로 확인하는 데 매우 효과적입니다. 이번 포스팅에서는 직급(JobLevel)월급(MonthlyIncome) 간 관계를 막대 그래프로 살펴보면서, 직급별 급여 수준이 어떠한 패턴을 갖는지 알아보겠습니다.


1. 막대 그래프(Bar Chart)란?

  • 범주형 데이터를 시각화할 때 주로 사용
  • x축에는 범주(Category), y축에는 그 범주의 값(혹은 집계 결과)
  • 범주별로 막대(Bar)의 높이로 값의 크기를 직관적으로 비교 가능

2. 코드 예시

아래 코드는 matplotlib.pyplotbar() 함수를 사용해, JobLevel을 x축, MonthlyIncome을 y축으로 하는 막대 그래프를 그립니다.

python
코드 복사
import matplotlib.pyplot as plt

# 간단한 예시 코드
plt.bar(df['JobLevel'], df['MonthlyIncome'])
plt.xlabel('JobLevel')
plt.ylabel('Monthly Income')
plt.title('JobLevel vs. MonthlyIncome (Bar Chart)')
plt.show()

코드 해설

  1. import matplotlib.pyplot as plt: matplotlib를 불러와 그래프 관련 함수를 사용합니다.
  2. plt.bar(x, height):
    • x 파라미터에 범주형 또는 이산형 변수(df['JobLevel'])
    • height 파라미터에 해당 범주에 대응되는 값(df['MonthlyIncome'])
  3. plt.xlabel(), plt.ylabel(): 그래프의 x축, y축 레이블을 설정합니다.
  4. plt.title(): 그래프 제목을 설정합니다.
  5. plt.show(): 그래프를 화면에 표시합니다.

3. 결과 해석

실행 결과, 직급이 높을수록 막대의 높이가 증가하는 패턴이 보일 수 있습니다. 즉, 월급(MonthlyIncome)직급(JobLevel)양의 상관관계를 가질 가능성이 높다는 뜻입니다.

다만, 기본 bar() 함수로 그린 그래프는 한 행당 하나의 막대를 그리므로, 데이터가 많을 경우 막대가 지나치게 많아져 시각적으로 복잡해질 수 있습니다.

예를 들어, JobLevel이 단일 범주형이 아니라 사실상 숫자형(1~5)으로 들어가거나, 각 행마다 다른 월급을 가지면 막대가 무수히 많아질 수 있습니다.


4. 개선 방안

  1. 그룹 집계 후 막대 그래프 그리기
    • groupby('JobLevel')['MonthlyIncome'].mean()처럼 직급별 평균 월급을 구한 뒤, 이를 막대 그래프로 표현하면 직급별 평균 월급을 한눈에 보기 편합니다.
    • 예시:
      python
      코드 복사
      mean_income_by_level = df.groupby('JobLevel')['MonthlyIncome'].mean()
      plt.bar(mean_income_by_level.index, mean_income_by_level.values)
      plt.xlabel('JobLevel')
      plt.ylabel('Average Monthly Income')
      plt.title('Average Monthly Income by JobLevel')
      plt.show()
      
  2. 정렬
    • 필요하다면 직급 순서(1, 2, 3, 4, 5)가 제대로 표시되도록 인덱스를 정렬하거나, sorted 함수를 사용할 수 있습니다.
  3. Seaborn 활용
    • seaborn.barplot()을 사용하면 평균값 및 신뢰구간을 자동으로 표시할 수 있어 더 풍부한 정보를 시각화 가능
    • 예시:
      python
      코드 복사
      import seaborn as sns
      
      sns.barplot(data=df, x='JobLevel', y='MonthlyIncome')
      plt.title('Monthly Income by JobLevel (Seaborn)')
      plt.show()
      

마무리

직급(JobLevel)과 월급(MonthlyIncome) 간의 관계를 막대 그래프로 표현하면, 급여가 직급에 따라 어떻게 변하는지 직관적으로 확인할 수 있습니다. 특히, 간단한 탐색적 분석(EDA) 단계에서 범주형 변수에 따른 값을 비교할 때 막대 그래프가 매우 유용합니다.

  • Tip: 실제 데이터가 많으면, 단순 plt.bar()보다 집계한 데이터를 시각화하거나 Seaborn의 고급 그래프를 사용해 가독성을 높이는 것이 좋습니다.

0개의 댓글