[python] matplotlib에 플롯 창이 없습니다.

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

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

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



답변

입력 할 수 있습니다.

import pylab
pylab.show()

또는 더 나은 경우 ipython -pylab.


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

import matplotlib.pyplot as plt

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

plt.show()


답변

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

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

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


답변

이 시도:

import matplotlib
matplotlib.use('TkAgg')

pylab을 가져 오기 전에


답변

아래 코드 조각은 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()


답변

오류가 표시됩니까? 이것은 백엔드를 설정하지 않은 문제 일 수 있습니다. 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


답변

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

ipython --matplotlib


답변

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

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