Matplotlib:如何将背景设置为透明?

10 浏览
0 Comments

Matplotlib:如何将背景设置为透明?

我发现了使绘图本身透明的方法,但是如何使背景透明呢?

有没有一种方法可以在没有Qt的情况下做到这一点?

我希望绘图能覆盖在背景窗口上,例如,假设我正在运行Chrome,我希望绘图能覆盖在Chrome窗口上,并且可以看到Chrome窗口的内容。

0
0 Comments

Matplotlib: 如何使背景透明?

问题出现的原因:

透明度是一个窗口属性,因此取决于所使用的后端和操作系统。Tkinter不适合创建透明窗口,但由于问题中排除了使用Qt,所以最好的方法可能是将窗口中的所有白色部分变为透明。

解决方法:

首先需要确保使用了Tk后端,然后创建一个图形和一些子图。接下来,将窗口置于顶层,并设置窗口的透明颜色为白色。最后显示图形。

代码如下:

import matplotlib
# 确保使用了Tk后端
matplotlib.use("TkAgg")  
import matplotlib.pyplot as plt
# 创建一个图形和一些子图
fig, ax = plt.subplots(figsize=(4,2))
ax.plot([2,3,5,1])
fig.tight_layout()
win = plt.gcf().canvas.manager.window
win.lift()
win.attributes("-topmost", True)
win.attributes("-transparentcolor", "white")
plt.show()

在尝试上述方法时,可能会遇到以下错误:

tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type

另外,还可能遇到以下错误:

AttributeError: 'FigureCanvasAgg' object has no attribute 'manager'

以上是解决Matplotlib背景透明的方法和可能出现的错误。

0
0 Comments

问题的出现原因:希望将图表保存为图像时,希望将背景设置为透明。

解决方法:使用Matplotlib中的保存函数`savefig()`,并设置参数`transparent=True`来将背景设置为透明。代码如下:

myploy.savefig('plotname.png', transparent=True)

这样,保存的图像文件"plotname.png"的背景就会被设置为透明。

0