Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PdfPages进行多页PDF导出时,在matplotlib imshow中保留alpha设置_Matplotlib_Alpha_Pdfpages - Fatal编程技术网

使用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阵列。