반응형
실행 중인 X 서버 없이 matplotlib 그래프 생성
Matplotlib에는 실행 중인 X 서버를 의미하는 $DISPLAY 환경 변수가 필요한 것 같습니다.
일부 웹 호스팅 서비스는 실행 중인 X 서버 세션을 허용하지 않습니다.
X 서버를 실행하지 않고 matplotlib을 사용하여 그래프를 생성할 수 있는 방법이 있습니까?
[username@hostname ~]$ python2.6
Python 2.6.5 (r265:79063, Nov 23 2010, 02:02:03)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/pyplot.py", line 270, in figure
**kwargs)
File "/home/username/lib/python2.6/matplotlib-1.0.1-py2.6-linux-i686.egg/matplotlib/backends/backend_tkagg.py", line 80, in new_figure_manager
window = Tk.Tk()
File "/usr/local/lib/python2.6/lib-tk/Tkinter.py", line 1643, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
>>>
@Neil의 답변은 한 가지 방법이지만 가져오기 전에 간단히 전화를 걸어 정상적으로 계속할 수도 있습니다.
예.
import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(range(10))
fig.savefig('temp.png')
Agg 백엔드를 사용할 필요도 없습니다.pdf, ps, svg, agg, 카이로 및 gdk 백엔드는 모두 X 서버 없이 사용할 수 있습니다.그러나 Agg 백엔드만 기본적으로 구축되므로 특정 설치에서 다른 백엔드를 사용할 수 없을 가능성이 높습니다.
또는 파일의 백엔드 매개 변수를 자동으로 설정할 수 있습니다.matplotlib.pyplot
지정된 렌더러를 사용합니다.
당신은 pylab 인터페이스를 거치지 않고 matplotlib API를 직접 사용해야 합니다.여기 좋은 예가 있습니다.
http://www.dalkescientific.com/writings/diary/archive/2005/04/23/matplotlib_without_gui.html
언급URL : https://stackoverflow.com/questions/4931376/generating-matplotlib-graphs-without-a-running-x-server
반응형
'source' 카테고리의 다른 글
폭 우선 검색에서 경로를 추적하는 방법은 무엇입니까? (0) | 2023.07.18 |
---|---|
systemd 서비스 유닛에서 가상 환경을 활성화하는 방법은 무엇입니까? (0) | 2023.07.18 |
boto를 사용하여 S3 버킷의 디렉토리에 파일을 업로드하는 방법 (0) | 2023.07.18 |
시스템에서 RVM(Ruby Version Manager)을 제거하는 방법 (0) | 2023.07.18 |
스프링 부트를 사용하여 엑셀 파일을 읽는 방법 (0) | 2023.07.18 |