Matplotlib 막대 차트는 Python에서 데이터 시각화를 위한 강력한 도구입니다. 이 포괄적인 가이드는 Matplotlib을 사용하여 막대 차트를 생성하고, 사용자 정의하고, 향상시키는 데 필요한 모든 것을 안내합니다. 기본 막대 차트부터 고급 기술까지, 우리는 모든 것을 다룰 것이며, 막대 차트 생성의 기술을 마스터하는 데 도움이 되는 많은 예제를 제공할 것입니다.
Matplotlib 막대 차트 추천 기사
Matplotlib 막대 차트 소개
Matplotlib 막대 차트는 Python에서 데이터 시각화의 필수적인 부분입니다. 이들은 범주형 데이터를 나타내고 서로 다른 범주 간의 값을 비교하는 효과적인 방법을 제공합니다. 막대 차트는 데이터의 분포를 보여주거나 서로 다른 그룹 간의 양을 비교하고자 할 때 특히 유용합니다.
Matplotlib를 사용하여 기본 막대 차트를 만드는 간단한 예제로 시작해 보겠습니다:
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
plt.figure(figsize=(8, 6))
plt.bar(categories, values)
plt.title('기본 Matplotlib 막대 차트 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
이 예제에서는 네 가지 카테고리와 해당 값으로 기본 막대 차트를 생성합니다. plt.bar()
함수는 Matplotlib에서 막대 차트를 생성하는 핵심입니다. 우리는 그림 크기를 설정하고, 레이블을 추가하며, 차트를 표시합니다.
Matplotlib 막대 차트 사용자 정의하기
Matplotlib 막대 차트의 강점 중 하나는 사용자 정의의 유연성입니다. 차트의 다양한 측면을 조정하여 시각적으로 더 매력적이고 유익하게 만들 수 있습니다.
막대 색상 변경
당신은 Matplotlib 막대 차트에서 막대의 색상을 쉽게 변경할 수 있습니다:
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
plt.figure(figsize=(8, 6))
plt.bar(categories, values, color='skyblue')
plt.title('Matplotlib 막대 차트 사용자 정의 색상 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
이 예제에서는 모든 막대의 색상을 변경하기 위해 color
매개변수를 'skyblue'로 설정합니다.
오류 막대 추가
오류 막대는 데이터의 불확실성 또는 변동성을 보여주기 위해 Matplotlib 막대 차트에 추가할 수 있습니다:
import matplotlib.pyplot as plt
import numpy as np
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
errors = [1, 2, 1.5, 2.5]
plt.figure(figsize=(8, 6))
plt.bar(categories, values, yerr=errors, capsize=5)
plt.title('Matplotlib 막대 차트와 오류 막대 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
여기서 우리는 yerr
매개변수를 사용하여 오류 값을 지정하고 capsize
를 사용하여 오류 막대 캡의 너비를 설정합니다.
그룹화된 막대 차트 만들기
그룹화된 막대 차트는 여러 데이터 세트를 카테고리별로 비교하고 싶을 때 유용합니다. 다음은 Matplotlib를 사용하여 그룹화된 막대 차트를 만드는 방법입니다:
import matplotlib.pyplot as plt
import numpy as np categories = ['A', 'B', 'C', 'D']
values1 = [10, 20, 15, 25]
values2 = [12, 18, 22, 20] x = np.arange(len(categories))
width = 0.35 fig, ax = plt.subplots(figsize=(10, 6))
rects1 = ax.bar(x - width/2, values1, width, label='Group 1')
rects2 = ax.bar(x + width/2, values2, width, label='Group 2')
ax.set_title('그룹화된 Matplotlib 막대 차트 - how2matplotlib.com')
ax.set_xlabel('카테고리')
ax.set_ylabel('값')
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.legend()
plt.tight_layout()
plt.show()
출력:
이 예제는 두 개의 데이터 세트를 가진 그룹화된 막대 차트를 생성합니다. 우리는 numpy
를 사용하여 막대의 위치를 계산하고 그룹화 효과를 만들기 위해 너비를 조정합니다.
누적 세로 막대 차트
누적 세로 막대 차트는 각 범주의 구성을 보여줄 수 있는 Matplotlib 막대 차트의 또 다른 변형입니다:
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values1 = [10, 20, 15, 25]
values2 = [5, 10, 12, 8]
values3 = [8, 7, 6, 9]
plt.figure(figsize=(10, 6))
plt.bar(categories, values1, label='그룹 1')
plt.bar(categories, values2, bottom=values1, label='그룹 2')
plt.bar(categories, values3, bottom=[i+j for i,j in zip(values1, values2)], label='그룹 3')
plt.title('스택형 Matplotlib 막대 차트 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.legend()
plt.show()
출력:
이 예제에서는 bottom
매개변수를 사용하여 막대를 서로 위에 쌓아 올려 스택형 막대 차트를 생성합니다.
수평 막대 차트
Matplotlib 막대 차트는 수평으로도 배치할 수 있으며, 이는 긴 범주 이름을 다룰 때 특히 유용합니다:
import matplotlib.pyplot as plt
categories = ['카테고리 A', '카테고리 B', '카테고리 C', '긴 이름의 카테고리 D']
values = [10, 20, 15, 25]
plt.figure(figsize=(10, 6))
plt.barh(categories, values)
plt.title('수평 Matplotlib 막대 차트 - how2matplotlib.com')
plt.xlabel('값')
plt.ylabel('카테고리')
plt.show()
출력:
여기에서는 수평 막대 차트를 만들기 위해 plt.barh()
대신 plt.bar()
를 사용합니다.
Matplotlib 막대 차트에 데이터 레이블 추가하기
Matplotlib 막대 차트에 데이터 레이블을 추가하면 더 많은 정보를 제공할 수 있습니다:
import matplotlib.pyplot as plt categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25] fig, ax = plt.subplots(figsize=(8, 6))
bars = ax.bar(categories, values)
ax.set_title('Matplotlib 막대 차트와 데이터 레이블 - how2matplotlib.com')
ax.set_xlabel('카테고리')
ax.set_ylabel('값')
for bar in bars:
height = bar.get_height()
ax.text(bar.get_x() + bar.get_width()/2., height,
f'{height}',
ha='center', va='bottom')
plt.show()
출력:
이 예제는 각 막대 위에 텍스트 레이블을 추가하여 정확한 값을 표시합니다.
바 너비 및 간격 사용자 정의
Matplotlib 막대 차트에서 막대의 너비와 막대 간의 간격을 조정할 수 있습니다:
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
plt.figure(figsize=(10, 6))
plt.bar(categories, values, width=0.5, align='center')
plt.title('Matplotlib 막대 차트 사용자 정의 너비 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
이 예제에서는 width
매개변수를 0.5로 설정하여 막대를 더 좁게 만들고, align='center'
를 사용하여 막대를 중앙 정렬합니다.
다채로운 막대 차트 만들기
Matplotlib 막대 차트에서 개별 막대에 서로 다른 색상을 지정할 수 있습니다:
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
colors = ['red', 'green', 'blue', 'orange']
plt.figure(figsize=(8, 6))
plt.bar(categories, values, color=colors)
plt.title('다채로운 Matplotlib 막대 차트 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
여기에서 우리는 color
매개변수에 색상 목록을 제공하여 각 막대에 서로 다른 색상을 할당합니다.
막대 차트에 색상 그라디언트 추가하기
당신은 Matplotlib 막대 차트에서 색상 그라디언트 효과를 만들 수 있습니다:
import matplotlib.pyplot as plt
import numpy as np
categories = ['A', 'B', 'C', 'D', 'E']
values = [10, 20, 15, 25, 30]
plt.figure(figsize=(10, 6))
bars = plt.bar(categories, values
# 색상 맵 생성
cm = plt.cm.get_cmap('viridis')
colors = cm(np.linspace(0, 1, len(categories)))
for bar, color in zip(bars, colors):
bar.set_color(color)
plt.title('Matplotlib 막대 차트와 색상 그라디언트 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
이 예제는 색상 맵을 사용하여 막대에 걸쳐 그라디언트 효과를 생성합니다.
눈금 레이블 및 회전 사용자 정의
눈금 레이블을 사용자 정의하고 더 나은 가독성을 위해 회전할 수 있습니다:
import matplotlib.pyplot as plt
categories = ['카테고리 A', '카테고리 B', '카테고리 C', '긴 이름의 카테고리 D']
values = [10, 20, 15, 25]
plt.figure(figsize=(12, 6))
plt.bar(categories, values)
plt.title('Matplotlib 막대 차트와 회전된 레이블 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.xticks(rotation=45, ha='right')
plt.tight_layout()
plt.show()
출력:
이 예제에서는 가독성을 높이기 위해 x축 레이블을 45도 회전합니다.
보조 Y축 추가
Matplotlib 막대 차트에 관련 데이터를 표시하기 위해 보조 y축을 추가할 수 있습니다:
import matplotlib.pyplot as plt categories = ['A', 'B', 'C', 'D']
values1 = [10, 20, 15, 25]
values2 = [50, 100, 75, 125] fig, ax1 = plt.subplots(figsize=(10, 6))
ax1.bar(categories, values1, color='b', alpha=0.7)
ax1.set_xlabel('카테고리')
ax1.set_ylabel('주 값', color='b')
ax1.tick_params(axis='y', labelcolor='b')
ax2 = ax1.twinx()
ax2.plot(categories, values2, color='r', marker='o')
ax2.set_ylabel('보조 값', color='r')
ax2.tick_params(axis='y', labelcolor='r')
plt.title('Matplotlib 막대 차트와 보조 Y축 - how2matplotlib.com')
plt.tight_layout()
plt.show()
출력:
이 예제는 기본 y축이 있는 막대 차트를 생성하고 선 플롯이 있는 보조 y축을 추가합니다.
애니메이션 바 차트 만들기
Matplotlib의 애니메이션 기능을 사용하여 애니메이션 바 차트를 만들 수 있습니다:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np fig, ax = plt.subplots(figsize=(10, 6))
categories = ['A', 'B', 'C', 'D']
values = [10, 20, 15, 25]
bars = ax.bar(카테고리, 값)
def update(frame):
new_values = np.random.randint(10, 30, len(categories))
for bar, value in zip(bars, new_values):
bar.set_height(value)
return bars
ani = animation.FuncAnimation(fig, update, frames=50, interval=200, blit=True
plt.title('애니메이션 매트플롯립 바 차트 - how2matplotlib.com')
plt.xlabel('카테고리')
plt.ylabel('값')
plt.show()
출력:
이 예제는 시간이 지남에 따라 막대 높이가 무작위로 변하는 애니메이션 막대 차트를 생성합니다.
Matplotlib 막대 차트 결론
Matplotlib 막대 차트는 데이터 시각화를 위한 다재다능하고 강력한 도구입니다. 이 포괄적인 가이드에서는 Matplotlib을 사용하여 막대 차트를 생성하고 사용자 정의하는 다양한 측면을 탐구했습니다. 기본 막대 차트부터 그룹화 및 누적 막대 차트, 3D 막대 차트, 애니메이션 막대 차트와 같은 고급 기술에 이르기까지, 이제 데이터에 대한 멋진 시각화를 만들기 위한 탄탄한 기초를 갖추게 되었습니다.
연습이 Matplotlib 막대 차트를 마스터하는 열쇠라는 것을 기억하세요. 다양한 옵션을 실험하고, 기술을 결합하며, 이러한 예제를 귀하의 특정 데이터 및 시각화 요구에 맞게 조정하세요. Matplotlib의 유연성과 이 가이드에서 얻은 지식을 바탕으로, 모든 데이터 시각화 프로젝트를 위한 유익하고 시각적으로 매력적인 막대 차트를 만들 수 있을 것입니다.