0

我正在使用生成叠加图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正确呈现的调用中。

谢谢,约瑟夫

4

1 回答 1

0

对于任何遭受这个问题的人......

解决方案是将 Matplotlib 更新到最新版本。我在 Ubuntu 12.04 存储库中使用了最新版本的 Matplotlib,但我落后了多个版本。该错误现已解决。谢谢!

于 2014-04-06T01:42:23.880 回答