我正在使用生成叠加图imshow
并将它们打印到多页 pdf 中matplotlib.backends.backend_pdf.PdfPages
。我正在使用以下方法将叠加层中背景的 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
调用中忽略了 alpha 信息,而不是在cmap.set_bad
正确呈现的调用中。
谢谢,约瑟夫