2014-02-18 1 views
0

imshow을 사용하여 오버레이 된 플롯을 생성하고 matplotlib.backends.backend_pdf.PdfPages을 사용하여 멀티 페이지 pdf로 인쇄합니다. 내가 사용 0으로 오버레이 배경의 알파를 설정 해요 :다중 페이지 PDF 내보내기를 위해 PdfPages를 사용할 때 matplotlib imshow에서 알파 설정 유지

edge = np.ma.masked_where(edge == 0, edge) 
cmap = plt.cm.winter 
cmap.set_bad('g', 0) 

를 그리고 명령 imshow 다음과 같은 두 가지와 배경 이미지에 그것을 오버레이 것은 :

plt.imshow(back[:, :, mid], cmap=plt.cm.gray, interpolation='nearest') 
plt.imshow(edge[:, :, mid], cmap=cmap, interpolation='nearest', alpha=0.5) 

이 이미지를 생성하는 matplotlib.pyplot.show()을 사용하면 올바르게 렌더링되지만 matplotlib.backends.backend_pdf.PdfPages.savefig()은 렌더링되지 않습니다. 특히 imshow 호출에서는 알파 정보가 무시되지만 올바르게 렌더링되는 cmap.set_bad 호출에서는 무시됩니다.

감사합니다, 조셉

이 문제로 고통 사람에게
+0

아마도 https://github.com/matplotlib/matplotlib/issues/2517, – tacaswell

+1

과 관련이 있으며 더 많은 코드를 추가하여이 문제를 보여줄 수있는 복사 가능 예제가 있어야합니다 (합성 데이터 사용). http://www.sscce.org/ 해결 방법은 자신의 매핑을 수행하고 알파를 조정 한 다음 rgba 배열을 전달하는 것입니다. – tacaswell

답변

0

은 ...

이 솔루션은 최신 버전으로하기 matplotlib를 업데이트했다. 나는 Ubuntu 12.04 repos에서 Matplotlib의 최신 버전을 사용하고 있었지만 여러 버전을 사용했습니다. 이제 버그가 해결되었습니다. 감사!

관련 문제