我使用matplotlib制作一些图表,不幸的是我没有白色背景就无法导出它们。
换句话说,当我导出这样的图并将其放在另一个图像的顶部时,白色背景会隐藏它背后的内容,而不是允许它显示。如何导出透明背景的图?
答案 0 :(得分:133)
将matplotlib savefig
函数与关键字参数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 :(得分:3)
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库,以使图表透明。