使用PdfPages进行多页PDF导出时,在matplotlib imshow中保留alpha设置
我正在使用使用PdfPages进行多页PDF导出时,在matplotlib imshow中保留alpha设置,matplotlib,alpha,pdfpages,Matplotlib,Alpha,Pdfpages,我正在使用imshow生成覆盖图,并使用matplotlib.backends.backend\u 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=pl
imshow
生成覆盖图,并使用matplotlib.backends.backend\u 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\u pdf.PdfPages.savefig()
,则会生成正确渲染的图像。具体来说,在imshow
调用中忽略alpha信息,但在cmap.set\u bad
调用中不忽略alpha信息,该调用将正确渲染
谢谢你,Joseph感谢所有受此问题困扰的人
解决方案是将Matplotlib更新为最新版本。我在Ubuntu12.04 repos中使用了最新版本的Matplotlib,但我落后了多个版本。该错误现在已解决。谢谢 可能与此相关,您可以添加更多的代码,以便有一个可复制的示例来演示此问题(使用合成数据)。强烈怀疑解决方法是自己进行映射,调整alpha,然后传递imshow显示rgba阵列。