2
このプログラムはエラーは表示されませんが、ポイントなしで空白のプロットが生成されます。後ほどこのコードを変更して、多くのプロセスが共有matplotlib散布図を変更するために並行して作業できるようにしたいと考えています。スキャッタプロットでマネージャを使用してマルチプロセッシングを行っていません
from multiprocessing.managers import BaseManager, NamespaceProxy
from multiprocessing import Process
import matplotlib.pyplot as plt
import numpy as np
def plotter(res):
print(res.ax,res.fig)
res.ax.scatter(np.random.normal(0,20,(100,)),np.random.uniform(0,20,(100,)),s=1)
res.fig.savefig('man2.png')
class PlotClass():
fig = plt.figure()
ax = fig.add_subplot(111)
def __init__(self):
print('Test')
class MyManager(BaseManager):
pass
class MyAttProxy(NamespaceProxy):
# We need to expose the same __dunder__ methods as NamespaceProxy,
_exposed_ = ('__getattribute__', '__setattr__', '__delattr__')
MyManager.register('Plot', PlotClass,MyAttProxy)
if __name__ == '__main__':
manager = MyManager()
manager.start()
plotscat = manager.Plot()
pr = Process(target=plotter,args=(plotscat,))
pr.start()
pr.join()
plotscat.fig.savefig('fig.png')
あなたの解決策で問題が解決されていません散布に追加した後の図を描き直す必要があります。 –