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

我正在使用matplotlib来制作一些图表,不幸的是我不能在没有白色背景的情况下导出它们。

样品情节与纯白色的背景

换句话说,当我输出这样一个情节,并把它放在另一个图像的顶部时,白色的背景隐藏了它的背后,而不是让它显示出来。 我怎样才能用透明的背景导出地块?

使用关键字参数transparent=True的matplotlib savefig函数将图像保存为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) 

结果: demo.png

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

显示截图

Png文件可以处理透明度。 所以你可以使用这个问题保存绘图到图像文件,而不是使用Matplotlib显示它 ,以便将graphics保存为png文件。

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

如果你想把整个区域变成透明的,那么就有这个问题:然后像这个问题一样使用PIL库Python PIL:如何使区域在PNG中透明? 以使您的graphics透明。