Единственное решение, которое я нашел, состояло в том, чтобы построить каждый сегмент независимо с различной прозрачностью
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 500)
y = np.sin(x)
alphas = np.linspace(1, 0, 499)
fig, ax = plt.subplots(1, 1)
for i in range(499):
ax.plot(x[i:i+2], y[i:i+2], 'k', alpha=alphas[i])
Но мне это не нравится ... Может быть, этого достаточно для кого-то