我正在使用matplotlib制作一些图形,不幸的是,我不能在没有白色背景的情况下导出它们。
换句话说,当我导出这样的绘图并将其放置在另一个图像的顶部时,白色背景隐藏了它背后的内容,而不是让它显露出来。如何导出具有透明背景的绘图?
发布于 2013-04-07 09:51:45
使用带有关键字参数transparent=True
的matplotlib函数将图像保存为savefig
文件。
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文件的透明部分可见的背景。
发布于 2013-04-07 09:00:37
Png文件可以处理透明度。因此,您可以使用此问题Save plot to image file instead of displaying it using Matplotlib,以便将您的图形保存为png
文件。
如果你想把所有的白色像素都变成透明的,还有另外一个问题:Using PIL to make all white pixels transparent?
如果你想把整个区域变成透明的,那么有这个问题:然后使用这个问题Python PIL: how to make area transparent in PNG?中的PIL库来使你的图形变得透明。
https://stackoverflow.com/questions/15857647
复制相似问题