pylab으로 원격으로 Figure를 저장하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
명령을 사용하여 원격 컴퓨터에서 그림을 생성하려고합니다 pylab.savefig
. 하지만 다음과 같은 오류가 발생했습니다.
Unable to access the X Display, is $DISPLAY set properly?
그림을 제대로 저장하려면 어떻게해야합니까?
기본적으로 matplotlib는 TkAgg
백엔드 와 같은 것을 사용합니다 . 이를 위해서는 X 서버가 실행 중이어야합니다.
X- 포워딩 만 사용할 수 있지만 matplotlib가 원격 X- 서버와 연결을 시도 할 때 눈에 띄는 지연이 있습니다. 플롯과 상호 작용할 필요가 없으면 X 연결을 완전히 피하여 속도를 높이는 것이 더 좋습니다.
X 서버가 전혀 필요하지 않고 플롯을 만들고 싶다면 대신 Agg
백엔드 를 사용하십시오 .
예를 들어 다음과 같이하십시오.
import matplotlib
matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
fig = plt.figure()
plt.plot(range(10))
fig.savefig('temp.png')
이것이 기본 동작이되도록하려면 기본적으로 백엔드 를 사용하도록 matplotlibrc 파일 을 수정할 수 있습니다 Agg
.
자세한 내용은 이 문서를 참조하십시오 .
DISPLAY 변수를 적절한 값으로 설정해보십시오.
X11을 사용하는 네트워크를 통한 그래픽은 그래픽을 그릴 위치를 나타내는 DISPLAY 환경 변수가있는 클라이언트 (원격) 컴퓨터에서 작동합니다. 일반적으로 mydesktop.example.com:0.0과 같습니다. X11 프로그램이 무언가를 그리려고하면 네트워크를 통해 mydesktop.example.com으로 이동합니다. 서버) 팝업이 나타납니다.
이제 앞에있는 컴퓨터가 Windows라면 어딘가에서 X 서버를 가져와야합니다. cygwin / X11 또는 상업용 eXceed가 잘 작동합니다.
또한 보안이 처리되었는지 확인해야합니다. 네트워크를 통해 누군가가 화면에 글을 쓰도록 할 수는 없습니다.
원격 시스템에 어떻게 연결하고 있습니까? Linux 상자에서 ssh를 사용하여 다른 Linux 상자로 이동하는 경우 간단한 해결책은 'Use ssh -X foo.example.com'으로 연결하는 것입니다. 이것은 로컬 소켓을 통해 X11 연결을 파이프합니다.
ssh -X가 답이 아니라면 관련된 운영 체제에 대한 더 많은 정보를 얻을 수 있습니까?
참고 URL : https://stackoverflow.com/questions/4706451/how-to-save-a-figure-remotely-with-pylab
'developer tip' 카테고리의 다른 글
리플렉션을 통해 한 클래스의 필드에서 다른 클래스로 모든 값 복사 (0) | 2020.10.29 |
---|---|
자바로 웹 스크래핑 (0) | 2020.10.29 |
Xcode4에서 * goto line * 명령은 어디에 있습니까? (0) | 2020.10.29 |
Node.js에서 CTRL + C 감지 (0) | 2020.10.29 |
서버 소켓에서 클라이언트 연결 끊김을 즉시 감지 (0) | 2020.10.29 |