목차
데이터를 분석할 때 데이터의 순위나 변화를 한눈에 보기 위해 그래프를 사용하는데, 이때 막대바 형태의 그래프가 매우 유용합니다. 오늘은 maplotlib 라이브러리의 pyplot 모듈에서 이러한 그래프를 그릴 수 있는 bar() 함수에 대해 설명해 보려고 합니다.
1. 막대바 그래프는 언제 사용하는가?
범주형 데이터의 값을 시각화할 때
막대그래프는 각 카테고리별로 값을 비교하기에 적합합니다. 예를 들어, 다른 도시의 인구, 각 월의 판매량, 제품 카테고리별 매출 등을 시각화할 때 많이 사용됩니다.
데이터의 변화를 보여주기 위해 여러 그래프를 겹쳐 그릴 때
막대그래프를 겹쳐 그리면 다른 그룹의 값 비교 및 변화를 한눈에 파악할 수 있습니다. 예를 들어, 각 연도별 도시별 인구 변화를 비교하기 위해 막대그래프를 겹쳐 그릴 수 있습니다.
히스토그램을 그릴 때
히스토그램은 데이터의 분포를 시각화하는 데 사용되며, 막대그래프로 표현됩니다. 각 막대는 데이터의 구간을 나타내고, 막대의 높이는 해당 구간에 속하는 데이터의 개수를 나타냅니다.
데이터의 순위를 시각화할 때
막대그래프는 데이터의 상대적인 크기를 시각적으로 비교할 수 있는 방법으로 사용됩니다. 예를 들어, 어떤 통계 지표의 상위 10개 항목을 막대그래프로 표현하면 순위와 함께 시각화할 수 있습니다.
2. Matplotlib의 bar() 함수 설명
bar 함수의 기본 사용 코드는 아래와 같습니다. 함수 내에는 많은 인자들이 존재하지만, 'x'와 'height'만 잘 들어가 있으면 막대바 그래프를 잘 표현해 줍니다. 보다 그래프를 이쁘게 만들기 위해서는 인자의 값을 지정해 주어야 합니다.
bar(x, height, width, bottom, align, **kwargs)
각 인자들은 다음과 같은 의미를 갖습니다.
x : 막대그래프의 x 좌표 또는 카테고리 위치입니다.
일반적으로 막대그래프는 카테고리별로 값을 비교하기 위해 사용됩니다. 이 인자는 반드시 제공되어야 합니다.
height : 막대의 높이입니다.
각 카테고리에 해당하는 막대의 높이를 지정하는 숫자 또는 숫자의 시퀀스입니다. 이 인자도 반드시 제공되어야 합니다.
width: 막대의 너비입니다. 기본값은 0.8입니다.
bottom: 막대의 아래쪽 위치입니다.
기본값은 None으로, 막대의 아래쪽이 0부터 시작합니다. 이 값을 변경하여 막대를 쌓을 수도 있습니다.
align: 막대의 정렬 방식입니다.
기본값은 'center'로, 카테고리 위치의 중앙에 막대가 위치합니다. 'center', 'edge', 'leading' 또는 'trailing' 중 하나를 선택할 수 있습니다.
color: 막대의 색상입니다.
기본값은 None으로, 기본 색상이 사용됩니다. 사용 가능한 값은 색상 이름 또는 RGB 값입니다.
edgecolor: 막대의 테두리 색상입니다.
기본값은 None으로, 테두리가 그려지지 않습니다.
linewidth: 막대의 테두리 선의 너비입니다.
기본값은 None으로, 테두리 선이 그려지지 않습니다.
label: 그래프에 대한 레이블입니다. 범례(legend)를 생성할 때 사용됩니다.
log: True로 설정하면, y 축이 로그 스케일로 표시됩니다.
3. Bar() 함수 인자들의 대한 예제 코드
이번에는 위에서 설명한 bar() 함수의 인자들을 변경해 가면서 인자들의 값 변경에 따라 그래프가 어떻게 그려지는지 살펴보도록 하겠습니다. 4개의 막대바를 그릴 예정이며, 기본 그래프와 너비, 색상, 테두리 선 두께가 조정되게 해 보겠습니다.
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [25, 40, 30, 35]
# 기본 막대 그래프
plt.subplot(2, 2, 1)
plt.bar(categories, values)
plt.title('Default')
# 막대의 너비 조정
plt.subplot(2, 2, 2)
plt.bar(categories, values, width=0.5)
plt.title('Custom Width')
# 막대의 색상과 테두리 설정
plt.subplot(2, 2, 3)
colors = ['red', 'blue', 'green', 'orange']
edgecolor = 'black'
plt.bar(categories, values, color=colors, edgecolor=edgecolor)
plt.title('Custom Colors and Edgecolor')
# 막대의 테두리 선 두께 설정
plt.subplot(2, 2, 4)
linewidth = 2
plt.bar(categories, values, linewidth=linewidth)
plt.title('Custom Linewidth')
# 그래프 간의 간격 조정
plt.tight_layout()
# 그래프 출력
plt.show()
기본적인 사용방법은 위와 같습니다. bar함수 내의 인자를 이용하면 다른 방법으로도 막대바 차트를 그릴 수 있습니다. 아래와 같이 'x'에는 values의 길이를 사용하여 개수가 매치시키는 것이 좋을 때도 있습니다. 대신 tick_label을 이용하여 라벨값을 지정해 주면 이전과 동일한 결과를 얻을 수 있습니다. xlabel과 ylabel을 이용하여 x축과 y축이 어떠한 데이터인지를 표기해 줄 수도 있습니다. title은 그래프의 이름을 적어줍니다.
mport matplotlib.pyplot as plt
import numpy as np
categories = ['A', 'B', 'C', 'D']
values = [25, 40, 30, 35]
# 막대 그래프 그리기
plt.bar(np.arange(len(values)), values, tick_label=categories)
# x축 레이블과 y축 레이블 설정
plt.xlabel('Categories')
plt.ylabel('Values')
# 타이틀 설정
plt.title('Bar Chart Example')
# 그래프 출력
plt.show()
4. 마치며
막대바 그래프는 데이터의 변화를 한눈에 보기 좋게 만들 때 사용합니다. matplotlib 라이브러리의 bar() 함수는 막대바를 그려주는 함수로 x와 height 인자를 필수로 넣어줘야 합니다. bar() 함수를 이용할 때 인자들의 사용법에 따라 그래프를 그리는 방식이 바뀔 수 있습니다.
댓글