여러 플롯을 열려고하는데 몇 가지 문제가 있습니다. 스레딩을 사용하여 플롯을 만들려고 시도했을 때, 파이썬은 먼저 여러 개의 윈도우를 열고 첫 번째를 제외한 모든 윈도우를 닫습니다.다중 처리 쇼 matplotlib 플롯
또 다른 질문으로는 내가 시도한 다중 처리를 사용하는 것이 좋습니다. 코드는 오류없이 실행되며 단지 플롯을 표시하지 않습니다.
저는 주 프로젝트로 옮기기 전에 뭔가 간단하게 작업하려고합니다.
# Import the necessary packages and modules
import matplotlib.pyplot as plt
import numpy as np
#from threading import Thread
import multiprocessing
def plot(datax, datay, name):
# Prepare the data
x = datax
y = datay**2
# Plot the data
plt.scatter(x, y, label=name)
# Add a legend
plt.legend()
# Show the plot
plt.show()
#plot(3,3,)
'''
for i in range(10):
t = Thread(target=plot, args=(i,i+1,i,))
t.start()
'''
for i in range(2):
p = multiprocessing.Process(target=plot, args=(i, i, i))
p.start()
갱신 : 어떤 이유로 는 다중 다시 작동이 중지. 프로세스를 열려면 multP() 함수를 만들려고했지만 입력 ('value :')을 추가하면 작동하지 않습니다. scine 데이터를 특정 쓰레드로 보내는 방법을 알아낼 수 없다. dat = [[x, y0, y1, ... yn], [x, y0, y1, .. .yn], ...] 그리고 각 플롯 프로세스가 뭔가가 dat에 추가되었는지 확인합니다. 원하는
import matplotlib.pyplot as plt
import numpy as np
import multiprocessing
#multiprocessing.freeze_support() # <- may be required on windows
def plot(datax, datay, name):
x = datax
y = datay**2
plt.scatter(x, y, label=name)
plt.legend()
plt.show()
def multiP():
if __name__ == "__main__":
for i in range(2):
p = multiprocessing.Process(target=plot, args=(i, i, i))
p.start()
if True:
#input('Vlaue: ') # while commented plots are shown
multiP()
멀티 프로세싱 또는 스레딩을 사용하는 목적은 무엇입니까? – ImportanceOfBeingErnest
글쎄, 기본적으로 필자가 pyusb를 통해 얻은 데이터를 플롯 할 수 있어야하고 실시간으로 여러 그래프에 플롯 할 수 있어야한다. (또는 내가 얻을 수있는 한 가까이에) – user169808
여기서 사용 된 다중 처리가 도움이 될지 의심 스럽다. 실시간 플로팅은 일단 시작되면 프로세스와 통신해야하기 때문에 가능합니다. – ImportanceOfBeingErnest