我试着把一个真实的质谱图放进我正在编写的程序中。到目前为止,我有一个简单的GUI,使程序具有其基本功能。我还想要它有一个质谱的活图,一个非常简单的二维条形图,大约有10,000个峰值。我希望用户能够缩放和平移周围的情节,但是matplotlib的默认后端非常慢。我一直在阅读,其他后端是可用的,推荐使用TkApp。我还希望它与tkinterPython3.3兼容。
当我试图更改后端时:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy
print(mpl.pyplot.get_backend())
mpl.pyplot.switch_backend('TkAgg')
plot = plt.plot([1, 2, 3, 4, 5, 6])
plt.show(plot)
print(mpl.pyplot.get_backend())输出:
C:\pyzo2013c\lib\site-packages\matplotlib\mathtext.py:46: UserWarning: Due to a bug in pyparsing <= 2.0.0 on Python 3.x, packrat parsing has been disabled. Mathtext rendering will be much slower as a result. Install pyparsing 2.0.0 or later to improve performance.
warn("Due to a bug in pyparsing <= 2.0.0 on Python 3.x, packrat parsing "
Qt4Agg
Traceback (most recent call last):
File "C:\MyPyProgs\Sequencer\spectrum_plot.py", line 7, in <module>
mpl.pyplot.switch_backend('TkAgg')
File "C:\pyzo2013c\lib\site-packages\matplotlib\pyplot.py", line 124, in switch_backend
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "C:\pyzo2013c\lib\site-packages\matplotlib\backends\__init__.py", line 28, in pylab_setup
globals(),locals(),[backend_name],0)
File "C:\pyzo2013c\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 11, in <module>
import matplotlib.backends.tkagg as tkagg
File "C:\pyzo2013c\lib\site-packages\matplotlib\backends\tkagg.py", line 2, in <module>
from matplotlib.backends import _tkagg
ImportError: cannot import name _tkagg我在用Pyzo软件包。一些修复建议是安装python3-matplotlib-tk,但是它找不到pyzo,因为它是python的独立安装,所以不在注册表中。任何帮助都将不胜感激。
谢谢
发布于 2014-01-16 14:33:04
在Pyzo社区团体Almar的帮助下,我设法解决了这个问题。我在这里发布它是为了帮助其他可能有同样问题的人。
所以首先要做的是将pyzo添加到注册表中,这是通过运行pyzo_activate.exe来完成的。然后打开cmd,我回答了所有的问题。
在此之后,我下载了matplotlib的兼容版本(以及重新发布时的PyQtGraph ),它们可以正常安装,并将pyzo识别为python版本。现在,当运行来自问题的代码时,将产生以下输出:
C:\pyzo2013c\lib\site-packages\matplotlib\mathtext.py:46: UserWarning: Due to a bug in pyparsing <= 2.0.0 on Python 3.x, packrat parsing has been disabled. Mathtext rendering will be much slower as a result. Install pyparsing 2.0.0 or later to improve performance.
warn("Due to a bug in pyparsing <= 2.0.0 on Python 3.x, packrat parsing "
TkAgg
TkAgg这意味着matplotlib的默认后端现在是TkAgg。所产生的绘图的pan/变焦控件是平滑和响应的。
发布于 2014-01-15 15:59:46
首先,听起来Pyzo包缺少pyparsing依赖项,因此这可能是造成速度问题的原因之一。
其次,从错误消息来看,您的matplotlib似乎由于某种原因没有使用Tk支持进行编译。你可能想联系Pyzo看看他们是否知道这件事。
作为解决办法,我建议首先从python.org安装Python,然后访问Christoph的用于Windows的Python扩展包存储库。如果您还没有运行它,它是一个非常大和非常最新的集合科学和其他Python模块的Windows,打包为自安装的.exe文件。许多软件包都链接到了用英特尔的数学内核库(MKL)编译的NumPy和SciPy,这可以大大提高在重型应用程序中的性能。它的另一个好处是,他在需要的地方给出了依赖信息,所以如果您访问matplotlib链接,它会显示您还需要下载哪些其他包。
当您在那里时,我强烈建议您检查一下IPython,这是一个交互式的Python开发环境,功能太多了。
https://stackoverflow.com/questions/21141811
复制相似问题