问题:如何从具有透明背景的matplotlib中导出图?
我正在使用matplotlib制作一些图形,但是不幸的是,如果没有白色背景,我将无法导出它们。
换句话说,当我导出这样的绘图并将其放置在另一幅图像的顶部时,白色背景隐藏了其背后的内容,而不是让其显示出来。如何导出具有透明背景的图?
回答 0
使用savefig
带有关键字参数的matplotlib 函数transparent=True
将图像另存为png文件。
In [30]: x = np.linspace(0,6,31)
In [31]: y = np.exp(-0.5*x) * np.sin(x)
In [32]: plot(x, y, 'bo-')
Out[32]: [<matplotlib.lines.Line2D at 0x3f29750>]
In [33]: savefig('demo.png', transparent=True)
结果:
当然,该图没有显示出透明度。这是使用ImageMagick display
命令显示的PNG文件的屏幕截图。棋盘图案是通过PNG文件的透明部分可见的背景。
回答 1
Png文件可以处理透明度。因此,您可以使用此问题将图保存到图像文件中,而不是使用Matplotlib显示它,以便将图形另存为png
文件。
如果要使所有白色像素透明,则还有另一个问题:使用PIL使所有白色像素透明吗?
如果您想将整个区域变成透明,那么会有一个问题:然后像这个问题一样使用PIL库Python PIL:如何在PNG中使区域透明?以使您的图表透明。