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

Matplotlib에서 막대 그래프를 동적으로 업데이트하는 방법

Matplotlib에서 막대 그래프(bar plot)를 동적으로 업데이트하려면 다음 단계를 따르면 됩니다.

  • 그림(figure) 크기를 설정하고 서브플롯 간의 여백(padding)을 조정합니다.
  • 새로운 그림을 생성하거나 기존 그림을 활성화합니다.
  • 데이터 포인트와 색상 목록을 만듭니다.
  • bar() 메서드를 사용하여 datacolors로 막대를 그립니다.
  • FuncAnimation() 클래스를 사용하여 함수 animate를 반복적으로 호출하는 애니메이션을 만듭니다. 이 함수는 막대의 높이와 면 색상(facecolor)을 설정합니다.
  • 그림을 화면에 표시하려면 show() 메서드를 사용합니다.

예제 코드

import numpy as np
from matplotlib import animation as animation, pyplot as plt, cm

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

fig = plt.figure()

data = [1, 4, 3, 2, 6, 7, 3]
colors = ['red', 'yellow', 'blue', 'green', 'black']
bars = plt.bar(data, data, facecolor='green', alpha=0.75)

def animate(frame):
    global bars
    index = np.random.randint(1, 7)
    bars[frame].set_height(index)
    bars[frame].set_facecolor(colors[np.random.randint(0, len(colors))])

ani = animation.FuncAnimation(fig, animate, frames=len(data))

plt.show()

코드 설명

위 코드는 7개의 데이터 포인트로 초기 막대 그래프를 생성한 후, FuncAnimation이 프레임마다 animate 함수를 호출합니다. 각 호출마다 해당 프레임의 막대 높이가 1~6 사이의 무작위 값으로 변경되고, 미리 정의된 색상 목록에서 무작위로 선택된 색상으로 막대의 색이 바뀝니다. 그 결과 데이터 값과 색상이 실시간으로 변하는 동적 애니메이션 막대 그래프를 확인할 수 있습니다.

실행 결과

코드를 실행하면 각 막대의 높이와 색상이 프레임마다 무작위로 변화하는 애니메이션이 출력됩니다.