如何从透明背景的matplotlib导出图?

Cup*_*tor 93 python plot transparency matplotlib

我使用matplotlib制作一些图表,不幸的是我没有白色背景导出它们.

样本图与纯白色背景

换句话说,当我导出这样的图并将其放在另一个图像的顶部时,白色背景会隐藏它背后的内容,而不是允许它透过.如何导出透明背景的图?

War*_*ser 154

使用matplotlib savefig函数和keyword参数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)
Run Code Online (Sandbox Code Playgroud)

结果: demo.png

当然,该情节并没有表现出透明度.这是使用ImageMagick display命令显示的PNG文件的屏幕截图.棋盘图案是通过PNG文件的透明部分可见的背景.

显示截图

  • 仅供参考其他使用此功能的人。`savefig` 位于 `matplotlib.pyplot` 下 (2认同)

Ste*_*and 6

PNG 文件可以处理透明度。因此,您可以使用此问题将绘图保存到图像文件,而不是使用 Matplotlib 显示它,以便将图形保存为png文件。

如果你想将所有白色像素变成透明,还有另一个问题:使用 PIL 使所有白色像素透明?

如果你想将整个区域变成透明,那么就会出现这个问题: 然后使用 PIL 库,就像这个问题Python PIL: how to make area transparent in PNG? 以使你的图表透明。