개발자는 데이터 기반 애플리케이션의 일부로 실시간으로 데이터를 플로팅해야 하는 문제에 자주 직면합니다. 그러나 "while" 루프 내에서 실시간 플로팅을 구현하려고 할 때 일반적인 문제가 발생합니다.
OpenCV를 사용하여 실시간으로 임의의 데이터 포인트를 플로팅하는 것을 목표로 하는 다음 예를 고려하십시오.
fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while i < 1000: temp_y = np.random.random() x.append(i) y.append(temp_y) plt.scatter(i, temp_y) i += 1 plt.show()
안타깝게도 이 코드는 포인트를 실시간으로 개별적으로 표시하지 못합니다. 대신 그래프를 표시하기 전에 루프가 완료될 때까지 프로그램 실행을 일시 중지합니다.
실시간 플로팅을 활성화하는 핵심은 루프 내에서 plt.pause(0.05) 함수를 호출하는 데 있습니다. 이 기능은 최신 데이터로 플롯을 업데이트할 뿐만 아니라 GUI의 이벤트 루프도 실행합니다. 이를 통해 사용자 상호 작용이 가능해 루프 실행 중에 플롯의 반응성과 대화형이 유지됩니다.
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()
plt.pause(0.05)를 통합하면 데이터 포인트를 실제로 플롯하는 기능이 잠금 해제됩니다. 데이터가 스트리밍되는 동안 이를 시각화할 수 있습니다.
위 내용은 Python의 While 루프 내에서 실시간 플로팅을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!