>백엔드 개발 >파이썬 튜토리얼 >Python의 While 루프 내에서 실시간 플로팅을 어떻게 달성할 수 있습니까?

Python의 While 루프 내에서 실시간 플로팅을 어떻게 달성할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-08 00:24:16336검색

How Can I Achieve Real-Time Plotting Within a While Loop in Python?

While 루프 내에서 실시간으로 플로팅

개발자는 데이터 기반 애플리케이션의 일부로 실시간으로 데이터를 플로팅해야 하는 문제에 자주 직면합니다. 그러나 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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