Python:如何导入Matplotlib所需的绝对最小值?

时间:2014-02-24 23:58:18

标签: python-2.7 matplotlib python-import

我有一个小项目,使用matplotlib显示芯片的晶圆图。我正在使用带有--onefile选项的PyInstaller将单文件Python(2.7)“编译”成可执行文件,以便公司的非Python用户可以在Windows中执行它。

可执行文件需要很长时间才能加载,最多可达15秒。作为一种解决方法,我删除了该程序的所有晶圆图绘制功能并构建了“Lite”版本。这个Lite版本运行在< 1s,应该如此。此外,Lite版本的.exe小85%(正如预期的那样)。

所以看起来Matplotlib的东西膨胀了exe并且需要很长时间才能加载。

这是我的思考过程: 如果我只导入我使用的模块而不是所有matplotlib.pyplot,我应该能够减小文件大小并减少加载时间。我假设import matplotlib.pyplot as pyplot行正在导入一大堆我没有使用的额外内容,例如散点图。

这是我的问题: 我怎样才能导入我使用的matplotlib部分?

这是我的(相关)代码,删除了很多绒毛(如线条颜色)。另外,请忽略PEP8缺乏符合性 - 这是在我决定遵循之前编写的: - )

from __future__ import print_function
import math
import matplotlib.pyplot as pyplot
import matplotlib.patches

fig = pyplot.figure(1)
ax = fig.add_subplot(111, aspect='equal')
ax.axis([xAxisMin, xAxisMax, yAxisMin, yAxisMax])
die = matplotlib.patches.Rectangle(coords, dieX, dieY)
ax.add_patch(die)
arc = matplotlib.patches.Arc((0, 0),
                             width=exclDia, height=exclDia, angle=-90,
                             theta1=ang, theta2=-ang)
flat = matplotlib.lines.Line2D([-flatX, flatX],
                               [flatY, flatY])
# Extra code that actually adds everything to the figure
fig.show()

所以看起来我只是在使用:

matplotlib.pyplot.figure
matplotlib.patches.Rectangle
matplotlib.patches.Arc
matplotlib.lines.Line2D

然而,上面的那些不是matplotlib中的单个模块(据我所知) - 它们是父模块的类(补丁,行,pyplot),所以我不能只是`import matplotlib.patches.Arc'或者任何东西

因此。我的下一步是什么?

0 个答案:

没有答案