2014-01-20 3 views
1

언어 처리를 수행하는 Django 기반 사이트를 개발 중입니다. 사이트의 일부가 텍스트 데이터로 Matplotlib 그래프를 생성합니다. 나는 모든 것을 가지고 있고 실행하고 내 dev에 서버에서 완벽하게 작동합니다. 나가 외부 직면 테스트 서버를위한 nginx에 전환 할 때, 도표는 모든 미치게 얻는다. 하나 또는 두 개의 그래프를 실행 한 후 각 그래프의 요소를 병합하기 시작합니다. 내가 말하는 것에 대해 설명하기 위해 아래에 시각적 예제를 추가했습니다. 전에 본 사람 있어요?matplotlib 백엔드가 nginx 서버에서 사용될 때 여러 그래프를 잘못 결합합니다.

첫 번째 유형의 플롯이 올바른 버전입니다. 여기

enter image description here

플롯의 제 2 유형의 정확한 버전이다. enter image description here

이제 여러 개의 그래프를 처리 한 후 때때로 그래프가 서로 엉키기 시작합니다. 아래 사진이 두 요소의 요소를 결합하는 방법을 관찰하십시오.

enter image description here

이 그래프는 서로 다른 전망을 별도의 페이지에있는 내 장고 dev에 서버에서 완벽하게 작동합니다. 이것은 Matplotlib의 백엔드에서 뭔가 미쳤다고 믿게했지만, 나는 다른 백엔드를 모두 시험해 보았고 같은 결과를 얻었습니다. 이 Nginx 캐싱 물건인가요? 내 마음은 진정으로 뒤죽박죽이다.

+1

완전히 새로운 플롯 객체를 인스턴스화하는 대신 두 개의 뷰가 어떻게 동일한 메모리/플롯 객체에 액세스하는지 가능성이 있습니다 (일부 코드는 여기를 보는 것이 도움이 될 수 있습니다.) – pztrick

+1

바로 거기에 슈퍼 영웅이었습니다. 나는 돌아가서 객체 지향 API 대 Pylab API를 사용해야했다. –

+0

도와 드리겠습니다! :) – pztrick

답변

2

필자는 Matplotlib 용 Pylab API를 사용하고 있었고 두 개의보기가 어떻게해서든지 동일한 플롯 객체에 액세스하고있었습니다. 나는 객체 지향 Matplotlib API를 사용하여 끝났다. 약간 사용자 친화적이지만, 병렬로 실행되는 여러 그림 인스턴스를 가질 수 있습니다. 이 article은 차이점을 잘 설명합니다.

관련 문제