matplotlib에 플롯 창이 없습니다.


90

시냅틱 패키지 시스템을 사용하여 Ubuntu 9.10에 matplotlib를 설치했습니다. 그러나 다음과 같은 간단한 예제를 시도하면

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

플롯 창이 나타나지 않습니다. 플롯 창을 표시하는 방법에 대한 아이디어가 있습니까?


8
pylab은 기본적으로 플롯을 표시하지 않습니다. 그리기 및 지속적인 업데이트는 비용이 많이들 수 있기 때문입니다. 명시 적 show().
Alok Singhal

1
이 문제에 대한 공식 문서 : matplotlib.org/faq/…
stephenbez

답변:


139

입력 할 수 있습니다.

import pylab
pylab.show()

또는 더 나은 경우 ipython -pylab.


의 사용은 pylab 더 이상 권장되지 않으므로 오늘날 해결책은 다음과 같습니다.

import matplotlib.pyplot as plt

plt.plot([1,2,3])

plt.show()

38

pylab.show() 작동하지만 차단됩니다 (창을 닫아야합니다).

훨씬 더 편리한 해결책은 pylab.ion()시작할 때 수행하는 것입니다 (대화 형 모드 켜기). 모든 (pylab과 동등한 pyplot.*명령 ) 명령은 플롯을 즉시 표시합니다. 대화 형 모드에 대한 자세한 내용 은 공식 웹 사이트에서 찾을 수 있습니다.

또한 두 번째로 더 편리한 ipython -pylab( --pylab, 최신 버전)을 사용하여 from … import …부분 을 건너 뛸 수 있습니다 ( %pylab최신 IPython 버전에서도 작동 함).


1
하지만 pylab.show()그림을 열려면 먼저 전화해야합니다 .
Steve Tjoa

3
@Steve : 내 경험은 이것이 백엔드에 크게 의존한다는 것입니다. 일반 Python 셸이있는 Mac OS X에서는 show () (또는 draw ())를 수행 할 필요가 없습니다. plot ()은 새 창을 엽니 다.
Eric O Lebigot

1
아, 그래. 좋은 지적. Linux에서 ipython에 대한 경험 만 있습니다.
Steve Tjoa

draw ()는 나를 위해 작동하지 않지만 pylab.ion ()은 작동합니다. 나는
OSx를

최신 Matplotlib를 사용하는 Python 셸에서도 마찬가지입니다. 내 대답을 업데이트했습니다. 감사합니다.
Eric O Lebigot

17

이 시도:

import matplotlib
matplotlib.use('TkAgg') 

pylab을 가져 오기 전에


11
이것은 무엇을해야합니까?
Nathan Fellman

11

아래 코드 조각은 Eclipse와 Python 셸 모두에서 작동합니다.

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()

다른 많은 답변이 명확히 알 수 있듯이 현재로서는 효과가있을 수 있지만 모두 matplotlib 백엔드가 구성되는 방식에 따라 다릅니다.
nealmcb 2014

9

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

코드에서 백엔드를 설정하려면

import matplotlib
matplotlib.use('Agg')

여기서 'Agg'는 백엔드의 이름입니다. 존재하는 백엔드는 설치 및 OS에 따라 다릅니다.

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

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


1
완전히 작동합니다. 감사합니다. 명확하게 말하면 (물론 이것이 작동한다는 것을 알고 나면) 가장 간단한 일은 백엔드 .matplotlib/matplotlibrcbackend: Agg. 그런 다음 use매번 명시 적으로 하나씩 지정할 필요는 없습니다. :)
dsummersl 2014 년

2

최신 IPython은 --matplotlib선택적 백엔드 매개 변수와 함께 " "인수를 사용합니다 . 기본값은 "auto"이며 일반적으로 Mac 및 Windows에서 충분합니다. Ubuntu 또는 다른 Linux 배포판에서 테스트하지 않았지만 작동 할 것으로 예상합니다.

ipython --matplotlib

0

pylab.show()IPython 창 을 고정 하는 문제가 발생하는 경우 (Mac OS X에만 해당 될 수 있으며 확실하지 않음) IPython 창에서 cmd-c를 실행하고 플롯 창으로 전환하면 문제가 발생합니다.

분명히 향후 호출 pylab.show()은 IPython 창을 고정하지 않고 첫 번째 호출 만 고정합니다. 불행히도, matplotlib를 다시 설치할 때마다 플롯 창의 동작 / show ()와의 상호 작용이 변경되므로이 솔루션이 항상 유지되는 것은 아닙니다.


0

--pylab옵션으로 IPython을 시작하는 경우 show()또는 을 호출 할 필요가 없습니다 draw(). 이 시도:

ipython  --pylab=inline

0

--pylab더 이상 Jupyter 에서 작동하지 않지만 다행스럽게도 ipython_config.py파일에 조정을 추가하여 기능 pylabautoreload기능을 모두 얻을 수 있습니다.

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

0

Anaconda 및 Spyder 사용자 인 경우 최상의 솔루션은 다음과 같습니다.

도구-> 환경 설정-> Ipython 콘솔-> 그래픽 섹션

그런 다음 그래픽 지원 (Matplotlib) 섹션에서 :

사용 가능한 두 가지 옵션을 선택하십시오.

그리고 그래픽 백엔드에서 :

자동 선택


-5

easy_install을 사용할 때 또 다른 가능성은 최신 버전의 matplotlib가 필요하다는 것입니다. 시험:

import pkg_resources
pkg_resources.require("matplotlib")

matplotlib 또는 해당 모듈을 가져 오기 전에.


2
이것은 matplotlib창 처리가 수행되는 방법에 영향을 미치지 않고 설치 되었는지 확인 합니다.
tacaswell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.