pyplot.show ()를 호출해도 matplotlib에 도면이 표시되지 않습니다.


175

matplotlib에 대한 도움말이 필요합니다. 예, pyplot.show () 호출을 잊지 않았습니다.

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))

matplotlib.lines.Line2D at 0xade2b2c출력으로 반환 됩니다.

p.show()

아무 일도 일어나지 않습니다. 오류 메시지가 없습니다. 새 창이 없습니다. 아무것도. matplotlibpip를 사용하여 설치 했는데 오류 메시지가 표시되지 않았습니다.

세부:

나는 사용한다,

  • 우분투
  • IPython v0.11
  • 파이썬 v2.6.6
  • matplotlib v1.0.1

답변:


177

백엔드를 template로 설정하면 ~/.matplotlib/matplotlibrc증상을 재현 할 수 있습니다.

~ / .matplotlib / matplotlibrc :

# backend      : GtkAgg
backend      : template

파일 matplotlibrc이 디렉토리에 없을 수도 있습니다 ~/.matplotlib/. 이 경우 다음 코드는 현재 위치를 보여줍니다.

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

~/.matplotlib/matplotlibrc백엔드를 편집 하고와 같은 것으로 변경하면 GtkAgg플롯이 나타납니다. 컴퓨터에서 사용할 수있는 모든 백엔드를

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

다음과 같은 목록을 반환해야합니다.

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

참고:


2
시도했지만 다음과 같은 오류가 발생했습니다.ImportError: No module named _backend_gdk
Baskaya

6
많은 의견에 대해 죄송합니다. 효과가있다. 나는 Qt4Agg를 시도하고 쳤다. 고마워 :) .. 마지막으로, 기본 matplotlibrc를 어디에서 찾을 수 있습니까?
Baskaya

어수선한 죄송합니다. 내가 찾은 것
Baskaya

8
이 대답은 오래되었습니다. 설정은 이제 ~/.config/matplotlib/matplotlibrc(파이썬 3의 경우)에 있어야합니다. 방금 관련 문제가 있었고 ~/.matplotlib/디렉토리 가 생성 된 python 2.7에서 matplotlib를 사용하여 발생했다고 생각합니다 ~/.config/matplotlib/. 삭제 ~/.matplotlib/하면 문제가 해결되었습니다.
naught101

5
6 년이 지난 후에도이 문제는 여전히 존재합니다. 이제 저는 왜 내가 파이썬을 싫어하는지 기억합니다.
pookie

70

Ubuntu 12.04에서 똑같은 문제가 발생했습니다.

pip install matplotlib

긴 이야기를 짧게하기 위해, 나의 조언은 : pip 또는 손으로 matplotlib를 설치하려고하지 마십시오; 실제 패키지 관리자 (예 : apt-get / synaptic)가이를 설치하고 모든 종속성을 설치하도록하십시오.

불행히도 matplotlib의 백엔드 (실제로 플롯을 렌더링하는 대체 방법)에는 pip가 처리하지 않는 모든 종류의 종속성이 있습니다. 더 나쁜 것은 조용히 실패하는 것입니다. 즉, pip install matplotlibmatplotlib을 성공적으로 설치 한 것으로 보입니다. 그러나 사용하려고하면 (예 pyplot.show():) 플롯 창이 나타나지 않습니다. 웹에서 사람들이 제안하는 모든 다른 백엔드 (Qt4Agg, GTK 등)를 시도했지만 모두 실패했습니다 (즉, matplotlib.pyplot을 가져 오려고 할 때 ImportError누락 된 일부 종속성을 가져 오려고하기 때문에 얻 습니다). 그런 다음 이러한 종속성을 설치하는 방법을 연구했지만 Python 이외의 패키지 종속성이있는 패키지의 실행 가능한 설치 솔루션으로 pip (virtualenv 내)를 포기하고 싶었습니다.

전체 경험을 통해 matplotlib와 같은 소프트웨어를 설치하기 위해 apt-get / synaptic (즉, Ubuntu 패키지 관리자)으로 다시 크롤링했습니다. 완벽하게 작동했습니다. 물론, 그것은 virtualenv가 아닌 시스템 디렉토리에만 설치할 수 있으며 Ubuntu가 배포 한 버전에 갇혀있어 현재 버전보다 뒤 떨어질 수 있습니다 ...


2
귀하의 답변은 BIT 길이이므로 영업 시간 단축을 고려할 수 있습니다.
theJollySin

5
--system-site-packages옵션 을 사용해 보셨습니까 ?
Tianyang Li

1
기본 백엔드 당신이 때 때문에 수치 오류 / 기타 불만없이 표시되지와 % 크리스토퍼 리의 문제가 pip install있다 agg. 왜 그런지 모르겠지만 unutbu의 답변에 따라 변경할 수 있습니다. pip최신 버전을 설치하면 큰 이점이 있습니다- apt오래된 버전을 설치하십시오. 때로는 원하거나 필요로하는 버그 수정 / 새로운 기능이 있습니다.
drevicko

2
그냥 비활성화 virtualenv했다! 그리고 소스 시스템 전체 (우분투)에서 matplotlib 1.4를 설치할 수 있었지만 아래에는 없습니다 virtualenv.
osa

1
그리고 apt-get을 사용할 수없는 Windows 작업 컴퓨터에 붙어있는 사람들을위한 솔루션은 무엇입니까?
ale19

34

% matplotlib 인라인

노트북으로 작업하는 경우 플롯이 작동하기 전에 위의 줄을 추가하십시오.


내가 사용하는 데 필요한 %pylab inline@Bhanu 프라 탑 싱 언급 한 바와 같이 내 노트북에
리드 샌드버그을

10

나중에 참조 할 수 있도록

같은 문제가 발생했습니다-pylab이 ipython에서 표시되지 않았습니다. ipython의 구성 파일 {ipython_config.py}를 변경하여 문제가 해결되었습니다. 구성 파일에서

c.InteractiveShellApp.pylab = 'auto'

'auto'를 'qt'로 변경했는데 이제 그래프가 표시됩니다.


5
또는 "ipython --pylab = qt"사용
cooke

이것은 작동하지만 그것은 단지 부분적인 해결책 : 기본 백엔드 인 경우 agg, 내가 일하지 않는 %pylab inline작동을하거나 직접 즉, 스크립트를 실행할 때 플롯이 표시됩니다 python myscript.py. unutbu의 대답은 모든 곳에서 해결해야합니다.
drevicko


8

내 문제를 해결 한 것은 상단의 ipython 노트북에서 아래 두 줄을 사용하는 것이 었습니다.

%matplotib inline
%pylab inline

그리고 효과가있었습니다. Ubuntu16.04 및 ipython-5.1을 사용하고 있습니다.


위 의견의 형식을 수정하십시오. 감사합니다.
사라 스 아리아

완료- 이 블로그 게시물은 pylab을 강타하지만 추가 %pylab inline하면 왜 작동 하는지 알 수 있습니다.
Bhanu Pratap Singh

2

이 작업을 수행하려면 소스에서 matplotlib를 설치해야했습니다. 주요 지침 ( http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ )은 다음과 같습니다.

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

@unutbu가 말했듯이 백엔드를 변경하면 방금 다른 모든 백엔드가 작동하지 않는 더 많은 문제가 발생했습니다.


1
간결하게 일했고, git clone 및 python 설정 단계 만 사용했지만 plt.show ()로 실행하면 아무런 문제가 없습니다.
Steve

2

pylab을 가져 오기 전에 다음 두 줄을 추가하면 효과가있는 것 같습니다.

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np

0

이 시작 스크립트를 활성화해야합니다 (환경 설정> 콘솔> 고급 옵션).

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

표준 PYTHONSTARTUP이 활성화 된 경우 대화식 도표가 없습니다


0

@Rikki 마찬가지로, 나는 업그레이드하여이 문제를 해결 matplotlib와 함께 pip install matplotlib --upgrade. 업그레이드 할 수없는 경우 제거 및 재설치가 작동 할 수 있습니다.

pip uninstall matplotlib
pip install matplotlib

0

나를 위해 macOS 에서 matplotlibrc 파일을 만들면 문제가 발생합니다 ~/.matplotlib. "backend : macosx"를 추가하면 문제가 해결됩니다.

나는 그것이 버그라고 생각한다. backend내에서 지정되지 않으면 matplotlibrc기본값을 가져야한다.



0

나는 내가 필요한 것을 발견 window = Tk()하고window.mainloop()


약간의 설명을 추가 할 수 있습니까? 귀하의 솔루션은 다른 솔루션과 어떻게 다릅니 까?
Ralf Stubner

-2

우분투 12.04의 경우 :

sudo apt-get install python-qt4
virtualenv .env --no-site-packages
source .env/bin/activate
easy_install -U distribute
ln -s /usr/lib/python2.7/dist-packages/PyQt4 .
ln -s /usr/lib/python2.7/dist-packages/sip.so .
pip install matplotlib
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.