2014-01-15 2 views
0

필자가 작성한 프로그램에 라이브 질량 스펙트럼 플롯을 넣으려고합니다. 지금까지 프로그램에 기본 기능을 제공하는 간단한 GUI가 있습니다. 또한 질량 스펙트럼의 라이브 플롯, 약 10,000 개의 피크가있는 매우 간단한 2D 막대 차트를 원합니다. 사용자가 줄거리를 확대/축소 할 수 있도록하고 싶지만 matplotlib의 기본 백엔드는 실제로 느립니다. 나는 주위를 읽고 있었고 다른 백엔드도 있으며 TkApp을 사용하는 것이 좋습니다. 또한 tkinter Python 3.3과 호환되기를 바랍니다.Pyzo에서 matplotlib와 함께 TkApp 백엔드를 사용해야합니다.

내가 백엔드를 변경하려고하면 :

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를 설치하는 것입니다. 그러나 python은 python을 찾을 수 없으므로 python을 독립 실행 형으로 설치하므로 레지스트리에 없습니다. 어떤 도움이라도 대단히 감사 할 것입니다. Pyzo 패키지는 pyparsing 종속성이없는 것처럼 그것은 당신의 속도 문제의 한 원인이 될 수 있도록

감사

답변

0

필자는 Pyzo 커뮤니티 그룹의 Almar의 도움으로이 문제를 해결할 수있었습니다. 같은 문제가있는 다른 사용자를 돕기 위해 게시하고 있습니다.

이렇게하려면 먼저 pyzo를 레지스트리에 추가하십시오.이 작업은 pyzo_activate.exe를 실행하여 수행됩니다. 그러면 cmd가 열리고 모든 질문에 y로 답합니다.

이 후 필자는 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 있음을 의미합니다. 생성되는 플롯의 팬/줌 컨트롤은 부드럽고 반응이 좋습니다.

0

첫째, 그것은 소리.

두 번째, 오류 메시지에서 matplotlib이 Tk 지원으로 컴파일되지 않은 것으로 보입니다. Pyzo에 연락하여 그들이 이것을 알고 있는지 볼 수 있습니다.

임시 해결책으로 먼저 python.org에서 Python을 설치 한 다음 Christoph Gohlke의 저장소를 방문하시기 바랍니다. 아직 실행하지 않았다면 자체 설치 언어 인 .exe으로 패키징 된 Windows 용 과학 및 기타 Python 모듈의 매우 크고 최신 컬렉션입니다. 대부분의 패키지는 인텔의 MKL (Math Kernel Library)로 컴파일 된 NumPySciPy에 링크되어 있으며 견고한 응용 프로그램에서 훨씬 뛰어난 성능을 제공합니다. 또 다른 좋은 점은 필요할 때 종속성 정보를 제공한다는 것입니다. 따라서 matplotlib 링크를 방문하면 다운로드해야하는 다른 패키지도 표시됩니다.

거기에있는 동안 기능이 넘쳐나는 대화 형 Python 개발 환경 IPython을 확인하는 것이 좋습니다.

+0

신속한 답장을 보내 주셔서 감사합니다. 나는 Pyzo 사람들에게 알려주고 당신이 제안한 다른 옵션들을 확실히 체크 할 것입니다. 대단히 감사합니다 :-) – Primigenia

관련 문제