使用PdfPages进行多页PDF导出时,在matplotlib imshow中保留alpha设置

时间:2014-02-18 18:14:13

标签: matplotlib alpha pdfpages

我正在使用imshow生成重叠图并使用matplotlib.backends.backend_pdf.PdfPages将其打印为多页pdf。我使用:

将叠加层中背景的alpha设置为0
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调用。

谢谢,约瑟夫

1 个答案:

答案 0 :(得分:0)

对任何患此问题的人......

解决方案是将Matplotlib更新为最新版本。我在Ubuntu 12.04 repos中使用了最新版本的Matplotlib,但我的版本落后于多个版本。这个bug现在已经解决了。谢谢!