>백엔드 개발 >파이썬 튜토리얼 >Matplotlib While 루프에서 실시간 플로팅을 달성하는 방법은 무엇입니까?

Matplotlib While 루프에서 실시간 플로팅을 달성하는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-06 04:33:17996검색

How to Achieve Real-Time Plotting in a Matplotlib While Loop?

Matplotlib을 사용하여 While 루프에서 실시간 플로팅

이 질문에서 사용자는 OpenCV를 사용하여 실시간으로 데이터를 플로팅하려고 시도하고 matplotlib. 그러나 실시간 플로팅이 의도한 대로 작동하지 않습니다. 사용자는 플롯이 한 번에 하나씩 포인트를 채우지 않고 대신 루프가 끝날 때까지 기다리는 간단한 예를 제공합니다.

이 문제를 해결하려면 matplotlib가 플롯을 실시간으로 업데이트하는 방법을 이해해야 합니다. 기본적으로 matplotlib는 plt.show()에 대한 함수 호출이 플롯을 표시한 다음 플롯 창이 닫힐 때까지 차단할 것으로 예상합니다. 이 동작으로 인해 데이터가 실시간으로 표시되지 않습니다.

해결책은 plt.pause() 함수를 사용하는 것입니다. plt.pause(0.05)는 새 데이터를 그리고 GUI의 이벤트 루프를 실행하며 0.05초 동안 플롯을 일시 중지합니다. 이를 통해 플롯이 실시간으로 업데이트되고 마우스 상호 작용에 응답할 수 있습니다.

실시간으로 10개 지점을 성공적으로 플롯하는 수정된 코드는 다음과 같습니다.

import numpy as np
import matplotlib.pyplot as plt

plt.axis([0, 10, 0, 1])

for i in range(10):
    y = np.random.random()
    plt.scatter(i, y)
    plt.pause(0.05)

plt.show()

이러한 조정을 통해 플롯은 이제 생성된 각 포인트를 표시하여 실시간 시각화가 가능합니다.

위 내용은 Matplotlib While 루프에서 실시간 플로팅을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.