Pyplot: vertical gradient fill under curve?

There may be a better way, but here goes:

from matplotlib import pyplot as plt

x = range(10)
y = range(10)
z = [[z] * 10 for z in range(10)]
num_bars = 100  # more bars = smoother gradient

plt.contourf(x, y, z, num_bars)

background_color="w"
plt.fill_between(x, y, y2=max(y), color=background_color)

plt.show()

Shows:

enter image description here

Leave a Comment