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

Matplotlib 막대 차트에서 모든 막대 객체를 가져오는 방법

Matplotlib로 그린 막대 차트에서 모든 막대(bar) 객체에 접근하려면 bar() 메서드의 반환값을 변수에 저장하면 됩니다. 이 반환값은 각 막대에 해당하는 Rectangle 객체들의 컨테이너이며, 이를 활용하면 개별 막대의 색상이나 스타일을 자유롭게 수정할 수 있습니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변과 사이의 여백을 조정합니다.
  • subplots() 메서드를 사용해 figure와 axes 객체를 생성합니다.
  • NumPy를 이용해 x, y 데이터 포인트를 만듭니다.
  • bar() 메서드로 막대 그래프를 그리고, 결과를 bars 변수에 저장합니다.
  • 인덱싱을 통해 특정 막대에 접근한 뒤 set_color() 메서드로 색상을 변경합니다.
  • show() 메서드를 호출해 그림을 화면에 표시합니다.

예제 코드

import numpy as np
import matplotlib.pyplot as plt

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

fig, ax = plt.subplots()

x = np.arange(7)
y = np.random.rand(7)

bars = ax.bar(x, y, color='red')
bars[0].set_color('yellow')
bars[4].set_color('blue')

plt.show()

코드 설명

위 예제에서는 7개의 막대를 빨간색으로 먼저 그린 후, bars[0](첫 번째 막대)은 노란색으로, bars[4](다섯 번째 막대)는 파란색으로 개별적으로 색상을 변경합니다. 이처럼 bar() 메서드가 반환하는 BarContainer 객체는 리스트처럼 인덱스로 접근할 수 있어, 특정 막대만 강조하거나 조건에 따라 색상을 다르게 지정하는 등의 세밀한 커스터마이징이 가능합니다.

실행 결과

Matplotlib 막대 차트에서 모든 막대 객체를 가져오는 방법

실행하면 대부분의 막대가 빨간색으로 표시되고, 첫 번째 막대는 노란색, 다섯 번째 막대는 파란색으로 강조된 막대 차트가 출력됩니다. 참고로 y 값은 np.random.rand()로 무작위 생성되므로 실행할 때마다 막대 높이는 달라질 수 있습니다.