关于python:如何从透明背景的matplotlib导出图?

How to export plots from matplotlib with transparent background?

我正在使用matplotlib制作一些图形,不幸的是,没有白色背景,我无法导出它们。

sample plot with solid white background

换句话说,当我导出这样一个图并将其放置在另一个图像的顶部时,白色背景隐藏了它后面的内容,而不是允许它显示出来。如何导出具有透明背景的绘图?


使用matplotlib savefig函数和关键字参数transparent=True将图像保存为PNG文件。

1
2
3
4
5
6
7
8
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)

结果:demo.png

当然,这个情节并不能证明其透明度。下面是使用imagemagick display命令显示的PNG文件的屏幕截图。棋盘图案是通过PNG文件的透明部分可见的背景。

氧化镁


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

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

如果您想将整个区域变为透明的,那么有一个问题:然后像在这个问题中那样使用pil库python pil:如何在png中使区域透明?以便使图形透明。