我正在使用matplotlib制作一些图形,不幸的是,如果没有白色背景,我就无法导出它们。
换句话说,当我导出这样的图并将其放置在另一个图像的顶部时,白色背景会隐藏其后面的内容,而不是让其显示出来。如何导出具有透明背景的图?
6gpjuf901#
使用matplotlib savefig函数和关键字参数transparent=True将图像保存为png文件。
savefig
transparent=True
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文件的透明部分可见的背景。
display
j91ykkif2#
Png文件可以处理透明度。所以你可以使用这个问题Save plot to image file instead of displaying it using Matplotlib,以便将你的图形保存为png文件。如果你想把所有白色像素变成透明的,还有一个问题:Using PIL to make all white pixels transparent?如果要将整个区域变为透明,则有以下问题:然后使用PIL库,如本题Python PIL: how to make area transparent in PNG?中所示,以使图形透明。
png
nfzehxib3#
请注意,plt.savefig()应在plt.show()之前写入,否则将创建透明图像(没有实际出图)。对于高质量图像:
plt.savefig('filename.png', format='png', dpi='600', transparent=True) plt.show()
3条答案
按热度按时间6gpjuf901#
使用matplotlib
savefig
函数和关键字参数transparent=True
将图像保存为png文件。结果:
当然,该图并没有展示透明度。下面是使用ImageMagick
display
命令显示的PNG文件的屏幕截图。棋盘图案是通过PNG文件的透明部分可见的背景。j91ykkif2#
Png文件可以处理透明度。所以你可以使用这个问题Save plot to image file instead of displaying it using Matplotlib,以便将你的图形保存为
png
文件。如果你想把所有白色像素变成透明的,还有一个问题:Using PIL to make all white pixels transparent?
如果要将整个区域变为透明,则有以下问题:然后使用PIL库,如本题Python PIL: how to make area transparent in PNG?中所示,以使图形透明。
nfzehxib3#
请注意,plt.savefig()应在plt.show()之前写入,否则将创建透明图像(没有实际出图)。
对于高质量图像: