Кажется, что ваш сюжет создан путем наложения прозрачных слоев. Цвет, который вы видите в самом темном слое, на самом деле является цветом 10 объединенных слоев.
Для объединения альфа-слоев используется следующая формула: alpha = alpha + alpha0 * (1 - alpha)
, как, например, объясняется в этой статье википедии .
Таким образом, можно пройти по маркерам легенды и соответствующим образом установить их альфа.
Вот пример кода. Если у вас есть дополнительные ручки, например, для кривой "mediana", будьте осторожны, чтобы пропустить их в l oop.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 30, 100)
y = np.zeros_like(x)
for i in range(1, 10):
y += 10 + np.abs(np.random.uniform(-1, 1, y.size).cumsum())
plt.fill_between(x, y, color='b', alpha=0.1, label=f'Pct{i * 10}')
plt.plot(x, y / 2, 'b-', label='mediana')
leg = plt.legend(loc='upper left', bbox_to_anchor=(1.02, 1.05))
alpha0 = 0.1
alpha = alpha0
for h in leg.legendHandles[:0:-1]:
h.set_alpha(alpha)
alpha = alpha + alpha0 * (1 - alpha)
plt.tight_layout()
plt.show()