具有透明框架和非透明边缘的图例



在图例中设置透明度时:

plt.legend(framealpha=0.5)

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

我试过:

plt.legend(edgecolor=(0, 0, 0, 1.), facecolor=(1, 1, 1, 0.1))

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

我正在使用 matplotlib v3.1.1。

不幸的是,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))

最新更新