2010-01-25 3 views
71

난 그냥 시냅스 패키지 시스템을 사용하여 우분투 9.10에 matplotlib를 설치했습니다. 나는 다음과 같은 간단한 예matplotlib에 플롯 창이 없음

>>> from pylab import plot; 
>>> plot([1,2,3],[1,2,3]) 
[<matplotlib.lines.Line2D object at 0x9aa78ec>] 

을하려고 할 때 그러나, 나는 더 플롯 창을 얻을 수 없습니다. 플롯 창을 표시하는 방법에 대한 아이디어가 있습니까?

+7

그리기 및 상수 업데이트가 비용이 많이 드는 경우가 있으므로 기본적으로 줄이 표시되지 않습니다. 명시 적으로'show()'를 할 필요가있다. –

+1

이 문제에 대한 공식 문서 : http://matplotlib.org/faq/installing_faq.html#matplotlib-compiled-fine-but-nothing-shows-up-when-i-use-it – stephenbez

답변

110

당신은

import pylab 
pylab.show() 

이상을 입력 할 수 ipython -pylab를 사용합니다.

9

오류가 있습니까? 이것은 백엔드를 설정하지 않은 문제 일 수 있습니다. 파이썬 인터프리터 나 홈 디렉토리의 설정 파일 (.matplotlib/matplotlibrc)에서 설정할 수 있습니다.

는 'AGG'는 백엔드의 이름입니다

import matplotlib 
matplotlib.use('Agg') 

을 할 수있는 코드에서 백엔드를 설정합니다. 현재 사용중인 백엔드는 설치 및 OS에 따라 다릅니다.

http://matplotlib.sourceforge.net/faq/installing_faq.html#backends

http://matplotlib.org/users/customizing.html

+1

완전히 작동합니다. 명확하게 말하면, 가장 간단한 일은 (일단 당신이 이것을 알고 있다면) 백엔드를'.matplotlib/matplotlibrc'에서'backend : Agg'로 설정하는 것입니다. 그렇다면 매번 명시 적으로 '사용'할 필요가 없습니다. – dsummersl

35

pylab.show() (블록을 ​​닫아야 함).

시작할 때 pylab.ion() (대화 형 모드 사용)을 수행하는 것이 훨씬 더 편리한 해결책입니다. 모두 (부속 파일과 동등한) pyplot.* 명령은 즉시 해당 플롯을 표시합니다. More information on the interactive mode은 공식 웹 사이트에서 찾을 수 있습니다.

또한 두 번째 (새로운 IPython 버전으로도 %pylab 작품) 당신이 from … import … 부분을 건너 뛸 수있는 (최신 버전에서, --pylab)이 더욱 편리 ipython -pylab를 사용하여.

+1

하지만 그림을 열려면 먼저'pylab.show() '를 호출해야합니다. –

+3

@Steve : 내 경험에 의하면 이것은 백엔드에 크게 의존한다는 것입니다. Mac OS X에서 일반 Python 쉘을 사용하는 경우 show() (또는 draw())를 수행 할 필요가 없습니다. plot()은 새 윈도우를 엽니 다. – EOL

+1

아, 알겠습니다. 좋은 지적. 나는 리눅스에서 ipython에 대한 경험이있다. –

13

이 시도 : 당신이 pylab.show()이 IPython 창을 정지되는 문제가 발생하면 수입 pylab 전

import matplotlib 
matplotlib.use('TkAgg') 

+6

어떻게해야합니까? –

+2

지금 고맙습니다. – agarie

0

(이 OS   맥   X 특정 될 수있다; 확실하지), 당신은 할 수 cmd-c를 입력하고, 플롯 창으로 전환하십시오.

나중에 pylab.show()을 호출해도 IPython 창이 고정되지 않고 첫 번째 호출 만 고정됩니다. 불행히도 필자는 matplotlib를 다시 설치할 때마다 plot 윈도우의 동작/show()와의 상호 작용이 바뀌므로이 솔루션이 항상 유지되지 않을 수 있음을 발견했습니다. 코드 조각 아래 이클립스와 파이썬 쉘 모두에서 작동

6

:

import numpy as np 
import matplotlib.pyplot as plt 

# Come up with x and y 
x = np.arange(0, 5, 0.1) 
y = np.sin(x) 

# Just print x and y for fun 
print x 
print y 

# Plot the x and y and you are supposed to see a sine curve 
plt.plot(x, y) 

# Without the line below, the figure won't show 
plt.show() 
+0

다른 많은 대답이 분명 해지면 현재로서는이 방법이 도움이 될 수 있지만 모두 matplotlib 백엔드가 어떻게 구성되어 있는지에 따라 다릅니다. – nealmcb

-5

또 다른 가능성 easy_install을을 사용하여 당신이하기 matplotlib의 최신 버전을 필요로 할 필요가 있다는 것입니다. 시도 :

import pkg_resources 
pkg_resources.require("matplotlib") 

당신이하기 matplotlib 또는 모듈의 가져 오기 전에.

+2

이것은'matplotlib'가 설치되어 있는지 확인하고, 윈도우 처리 방법에 영향을 미치지 않습니다. – tacaswell

0

--pylab 옵션으로 IPython을 시작하는 경우 show() 또는 draw()으로 전화하지 않아도됩니다.

ipython --pylab=inline 
0

--pylab가 더 이상 Jupyter을 위해 작동하지만 다행히도 우리는 모두 pylab뿐만 아니라 autoreload 기능을 얻을 수있는 ipython_config.py 파일에 비틀기를 추가 할 수 있습니다 :이 시도하지 않는다.

c.InteractiveShellApp.extensions = ['autoreload', 'pylab'] 
c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab'] 
2

최신 IPython은 선택적 백엔드 매개 변수와 함께 "--matplotlib"인수를 사용합니다. 기본값은 "auto"이며, 일반적으로 Mac 및 Windows에서 충분히 좋습니다. 나는 Ubuntu 나 다른 리눅스 배포본에서이 파일을 테스트하지는 못했지만, 제대로 작동 할 것으로 기대한다.

ipython --matplotlib 
관련 문제