我正在编写一个代码以在函数上拟合高斯,如果我没有绘制结果(它是~60x60光谱的数据立方体,所以我使用的是循环),代码工作得非常快。
但是当我说代码绘制每个图形时它变得非常慢,就像2个图形一样(当我没有绘制时它就像40个)。
好的,我知道减慢速度可能是正确的,但IDL中有一个完全相同的代码,代码每秒运行8~10个图。
有没有办法改善它?或者python真的比IDL慢?
这是情节代码:
plt.plot(wavelengthset, data_datacube[minpixel:maxpixel+1, j, i], 'k-',
wavelengthset, gaussian(fit[0], wavelengthset), 'r-')
plt.draw()
plt.clf()
答案 0 :(得分:0)
我建议您尝试删除plt.draw()
并使用blit
。如果这还不够,请让我更多地了解您的数据和图表的目的。
有关详细信息,请参阅此答案:why is plotting with Matplotlib so slow?
正如上面链接提到的答案,matplotlib专为高质量,可定制的交互式绘图而设计。 Matplotlib可能比你在IDL中熟悉的数据处理工具要慢,但这并不是说另一个速度敏感的Python工具包不会那么快/有用。
祝你好运!