带有透明边框和不透明边缘的图例

JVR*_*JVR 2 python alpha matplotlib legend

在图例中设置透明度时:

plt.legend(framealpha=0.5)
Run Code Online (Sandbox Code Playgroud)

它同时影响背景和边缘。如何仅将透明度应用于背景而不应用于边缘?

我试过了:

plt.legend(edgecolor=(0, 0, 0, 1.), facecolor=(1, 1, 1, 0.1))
Run Code Online (Sandbox Code Playgroud)

使用它我可以更改颜色但不能更改透明度,即 usingfacecolor=(1, 0, 0, 0.1)确实将背景颜色更改为红色,但 usingfacecolor=(1, 0, 0, 0.5)不会对透明度产生任何影响。

我正在使用 matplotlib v3.1.1。

Imp*_*est 5

不幸的是,它framealpha会覆盖实际边缘或面颜色的 alpha 值。因此,需要在图例补丁上手动设置颜色,包括 alpha。

legend = plt.legend(loc="upper right", edgecolor="black")
legend.get_frame().set_alpha(None)
legend.get_frame().set_facecolor((0, 0, 1, 0.1))
Run Code Online (Sandbox Code Playgroud)