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 중국어 웹사이트의 기타 관련 기사를 참조하세요!