Легенда с прозрачной рамкой и непрозрачным краем - PullRequest
0 голосов
/ 18 октября 2019

При настройке прозрачности в легенде:

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.

1 Ответ

2 голосов
/ 18 октября 2019

К сожалению, framealpha переопределяет альфа-значение фактических краев или граней. Следовательно, необходимо установить цвет, включая альфа, вручную в патче легенды.

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