>  기사  >  백엔드 개발  >  동시 계산을 위해 코드 실행에서 matplotlib 플롯을 분리하는 방법은 무엇입니까?

동시 계산을 위해 코드 실행에서 matplotlib 플롯을 분리하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-07 16:55:03459검색

How to detach matplotlib plots from code execution for concurrent computation?

동시 계산을 위한 분리 가능한 Matplotlib 플롯

데이터 시각화 영역에서 대화형 플롯 생성은 종종 중요한 측면입니다. 널리 사용되는 Python 라이브러리인 Matplotlib는 정적 및 대화형 플롯을 생성하는 기능을 제공합니다. 그러나 지속적인 계산을 허용하기 위해 코드 실행에서 matplotlib 플롯을 분리하려고 시도할 때 제한 사항이 발생할 수 있습니다.

도전 과제: 코드 실행에서 플롯 분리

다음을 고려하세요. Python 코드 조각:

from matplotlib.pyplot import *
plot([1,2,3])
show()
# other code

이 코드를 실행하면 플롯 창이 나타납니다. 그러나 문제는 프로그램이 추가 계산을 진행하기 전에 플롯 창을 종료해야 한다는 것입니다. 프로그램이 계산을 계속하는 동안 중간 결과에 대한 대화형 탐색은 불가능해집니다.

해결책: 비차단 Matplotlib 호출 사용

이 문제를 극복하기 위해 matplotlib는 다음과 같은 여러 호출을 제공합니다. 코드 실행을 차단하지 않고 사용할 수 있습니다. 그러한 호출 중 하나가 draw()입니다. 다음 수정 사항을 통합하여:

from matplotlib.pyplot import plot, draw, show
plot([1,2,3])
draw()
print('continue computation')

# at the end call show to ensure window won't close.
show()

이 코드를 실행하면 프로그램이 다른 계산 작업을 진행하는 동안 플롯 창이 즉시 표시될 수 있습니다. draw() 함수는 코드 실행을 차단하지 않고 플롯을 효과적으로 업데이트합니다.

또 다른 방법은 matplotlib에서 대화형 모드를 사용하는 것입니다.

from matplotlib.pyplot import plot, ion, show
ion() # enables interactive mode
plot([1,2,3]) # result shows immediatelly (implicit draw())

print('continue computation')

# at the end call show to ensure window won't close.
show()

ion( ) 호출을 사용하면 draw()를 명시적으로 호출할 필요 없이 계산이 진행됨에 따라 플롯이 실시간으로 업데이트되고 표시될 수 있습니다. 마지막에 show() 호출을 사용하면 플롯 창이 열린 상태로 유지됩니다.

위 내용은 동시 계산을 위해 코드 실행에서 matplotlib 플롯을 분리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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