from pylab import *;
from multiprocessing import Pool;
x = np.load('x.npy'); # Shape: 50001
y = np.load('y.npy'); # Shape: 50001x10240
z = np.arange(10240);
figure(num=0, figsize=(16,10));
subplots_adjust(left=0.08, bottom=0.08, right=0.92, top=0.92, wspace=0., hspace=0.);
ax1 = subplot(111);
ax1.set_xlabel('X', size=20); ax1.set_ylabel('Y', size=20);
ax1.set_ylim(50,200);
for tl in ax1.get_yticklabels(): tl.set_fontsize(20);
for tl in ax1.get_xticklabels(): tl.set_fontsize(20);
title('Title', size=20);
def f(i):
ax1.plot(x, y[i], 'k-', alpha=0.005);
def handler():
p = Pool(8);
p.map(f,z);
if __name__ == '__main__':
handler();
savefig('image.png');
我有一个大的npy文件,其中10240个数据集的长度为50001,每个都要绘制在同一个图上。不幸的是,我得到的只是一个空白的情节,因为函数ax1.plot()
内的f
实际上并没有在真实情节的函数之外产生差异。
我该如何解决这个问题?如何让f
以适当的永久方式操纵ax1
?
如果我没有并行化它就可以工作,但我找不到并行化的方法:(
答案 0 :(得分:0)
尝试添加:
global ax1
在f()的开头。