How to export plots from matplotlib with transparent background?
我正在使用matplotlib制作一些图形,不幸的是,没有白色背景,我无法导出它们。
。
换句话说,当我导出这样一个图并将其放置在另一个图像的顶部时,白色背景隐藏了它后面的内容,而不是允许它显示出来。如何导出具有透明背景的绘图?
使用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) |
结果:。
当然,这个情节并不能证明其透明度。下面是使用imagemagick display命令显示的PNG文件的屏幕截图。棋盘图案是通过PNG文件的透明部分可见的背景。
氧化镁
PNG文件可以处理透明度。因此,您可以使用这个问题"将绘图保存到图像文件",而不是使用matplotlib显示它,以便将图形保存为png文件。
如果你想把所有的白色像素变成透明的,还有一个问题:使用PIL使所有的白色像素变成透明的?
如果您想将整个区域变为透明的,那么有一个问题:然后像在这个问题中那样使用pil库python pil:如何在png中使区域透明?以便使图形透明。
- 谢谢,但这没用。我知道PNG是透明的,但Matplotlib的输出不是透明的。另外,您的建议仅适用于希望删除矩形的情况。我希望保存我的绘图并删除我的背景。
- 据我所知,你在PNG中设置了透明的颜色。文件。将白色设置为透明色,就可以了。
- 我想255是白色的,当我使用它的时候,我的情节就消失了!
- 这很奇怪。只有你的情节?图是黑色的,单位也是黑色和蓝色的?
- 不是黑色。透明!让我给你举个例子:这是我运行的代码:import image import image draw im=image.open("~/figure_1.png")transparent_area=(50,80300400)mask=image.new("l",im.size,color=255)draw=imagedraw.draw(mask)draw.rectangle(transparent_area,fill=0)im.putalpha(mask)im.save("~/new.png"),结果是:i47.tinypic.com/zx6tmx.png
- 有一个问题是如何将所有白色像素转换为透明(而不是像我链接到你的那样使用遮罩)stackoverflow.com/question s/765736/&hellip;
- 但如果你看看沃伦·韦克瑟的回答,你可能会更高兴。;-)
- 无论如何,谢谢你。