복붙노트

[PYTHON] matplotlib 플롯에서 저장 버튼이 작동하지 않는 이유는 무엇입니까?

PYTHON

matplotlib 플롯에서 저장 버튼이 작동하지 않는 이유는 무엇입니까?

matplotlib 1.0.0을 Mac OS X 10.6의 Python 2.7 virtualenv에 설치했습니다. 나는 플롯을 잘 만들 수있다. 그러나 저장 단추를 누를 때마다 저장 대화 상자 창에 텍스트를 입력하거나 플롯을 저장할 수 없습니다. 내가 할 수있는 유일한 방법은 치기 취소 다. 이 문제의 원인과 해결 방법에 대한 의견이 있으십니까?

astro의 matplotlib github 저장소를 복제 한 다음 numpy / scipy / matplotlib에 대한 HyperJeff의 설치 지침을 느슨하게 따라 작성하여 matplotlib를 설치했습니다. 아래는 setup.cfg 및 make.osx의 잠재적으로 관련성이있는 섹션입니다. 여기에는 컴파일 및 설치 전에 수정 한 섹션이 포함됩니다.

[egg_info]
tag_svn_revision = 1

[directories]
basedirlist = /Users/matthew/.virtualenvs/matplotlib-test

[status]
#suppress = True
#verbose = True

[provide_packages]

[gui_support]
#gtk = False
#gtkagg = False
#tkagg = False
wxagg = False
#macosx = False

[rc_options]
backend = MacOSX
#numerix = numpy
# build mpl into a local install dir with
PREFIX=/Users/matthew/.virtualenvs/matplotlib-test
MPLVERSION=1.0rc1
PYVERSION=2.7
PYTHON=python${PYVERSION}
ZLIBVERSION=1.2.3
PNGVERSION=1.2.39
FREETYPEVERSION=2.3.11
MACOSX_DEPLOYMENT_TARGET=10.6
OSX_SDK_VER=10.6
ARCH_FLAGS="-arch i386-arch x86_64"

## You shouldn't need to configure past this point (but I did...)

PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
CFLAGS="${ARCH_FLAGS} -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
LDFLAGS="${ARCH_FLAGS} -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"

PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"
CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"
FFLAGS="-arch i386 -arch x86_64"

setup.cfg 및 make.osx를 수정 한 후 다음 명령을 실행하여 matplotlib를 설치했습니다.

make -f make.osx fetch deps mpl_build mpl_install
python setup.py install

주의 : sudo는 HyperJeff가하는 것처럼 사이트 패키지 대신 virtualenv에 설치하기 때문에 필요하지 않습니다.

Mac OS X 10.5 용 python.org의 Python 2.7 PPC / i386 / x86-64 Mac OS X 설치 프로그램 디스크 이미지를 사용하여 Python 2.7을 설치했습니다. 이 질문에 대한 네드 딜리 (Ned Deily)의 답변 덕분에이 버전의 Python 2.7은 Mac OS X 10.6에서 IDLE 또는 Tkinter를 실행할 수 없습니다.

다른 Mac OS X 및 matplotlib 사용자도 동일한 문제를 겪고있는 것으로 보입니다. matplotlib-users 메일 링리스트에서 두 명의 사용자가 Mac OS X 10.5에서 같은 문제가 있다고보고했습니다. 비록 그들이 설치 한 matplotlib 0.99.1.1과 0.99.1.2 대 matplotlib 1.0.0을 사용하고있었습니다.

matplotlib 버그 2973874는 203-3 월 10 일에 같은 문제로 열렸습니다. 그러나 우선 순위 5이며 버그가 원래 열렸으므로 수정되지 않았습니다. 다음은 버그에 대한 설명입니다.

해결법

  1. ==============================

    1.virtualenv가 실제로 Application Bundle에서 실행 중임을 OSX에 확신시켜야합니다. 수정 내용은 여기에서 설명합니다.

    virtualenv가 실제로 Application Bundle에서 실행 중임을 OSX에 확신시켜야합니다. 수정 내용은 여기에서 설명합니다.

    http://groups.google.com/group/python-virtualenv/browse_thread/thread/83fa4a12d22a30c8/744e19c194f1618a

    여기에 구현되었습니다.

    https://github.com/gldnspud/virtualenv-pythonw-osx

  2. ==============================

    2.내 대답은 문제를 해결하지 못하지만 쉽게 해결할 수 있습니다! 터미널에서 올바른 파일 확장명을 가진 새 파일을 터치 할 수 있습니다. matplotlib 창에서 마우스로이 파일을 선택하고 덮어 쓸 수 있습니다.

    내 대답은 문제를 해결하지 못하지만 쉽게 해결할 수 있습니다! 터미널에서 올바른 파일 확장명을 가진 새 파일을 터치 할 수 있습니다. matplotlib 창에서 마우스로이 파일을 선택하고 덮어 쓸 수 있습니다.

  3. ==============================

    3.이것을 해결하려면 :

    이것을 해결하려면 :

    pythonw를 설치하려면 conda install python.app를 사용하십시오.

    그런 다음 터미널에서 python 대신 pythonw를 사용하십시오.

    pythonw my_plot.py
    

    희망이 도움이

  4. ==============================

    4.Thouis 방법이 효과가없는 사람들을 위해 :

    Thouis 방법이 효과가없는 사람들을 위해 :

    간단한 해결 방법은 matplotlib 백엔드를 변경하는 것입니다. 다음은 사용 가능한 백엔드 목록입니다.

    http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

    렌더러 중 하나 (즉, show () 명령을 지원하는 렌더러) 중 하나를 선택해야합니다. 백엔드를 설치해야하지만, 여러 대의 백엔드가 설치되어있을 수 있습니다.

    그렇게하려면 :

    import matplotlib
    matplotlib.use('Qt4Agg')    #replace 'Qt4Agg' with desired backend
    

    경고 : 이것은 필라브 등을 가져 오기 전에 수행되어야합니다.

  5. from https://stackoverflow.com/questions/3692928/why-doesnt-the-save-button-work-on-a-matplotlib-plot by cc-by-sa and MIT license