Contents

How to Shade Regions Under the Curve in Python

In Python, you can use the fill_between function from matplotlib to shade the desired regions under the curve.

The basic syntax for the fill_between function is:

# impoat package
import matplotlib.pyplot as plt

plt.fill_between(x, y)

The fill_between function requires values for the x and y coordinates to define the area for shading.

The following examples explain how to use the fill_between function to shade the desired regions under the curve.

Example 1: Shade region under the single curve

Create a sample dataset for plotting the curve,

# impoat package
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)  

Now plot the curve and shade the area under the curve using matplotlib,

# impoat package
import matplotlib.pyplot as plt

# plot the curve
plt.plot(x, y, label='sin(x)')
# shade area under the single Curve
plt.fill_between(x, y, where=(y > 0))
plt.show()

In the above example, we used the fill_between function to shade the region under the single curve. The region is shaded where the value of y-axis is > 0 (using the where parameter).

/images/posts/82_shade_single.png
Shade region under the single curve

Example 2: Shade region under two curves

You can also shade the region under the two curves in a single plot in Python.

Create a sample dataset for plotting the two curves,

# impoat package
import numpy as np

x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x) 

Now plot the two curves and shade the area under two curves using matplotlib,

# impoat package
import matplotlib.pyplot as plt

# plot the curve
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# shade are under two curves
plt.fill_between(x, y1, y2, where=(y1 > y2))
plt.legend()
plt.show()

In the above example, we used the fill_between function to shade the region under two curves using the y1 and y2 coordinates. The region is shaded where the value of y1 is greater than y2 (using the where parameter).

/images/posts/82_shade_double.png
Shade region under two curves

You can also use multiple conditions for y1 and y2 coordinates to shade the region under the curves,

# impoat package
import matplotlib.pyplot as plt

# plot the curve
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
# shade are under two curves
plt.fill_between(x, y1, where=(y1 > 0))
plt.fill_between(x, y2, where=(y2 > 0))
plt.legend()
plt.show()

/images/posts/82_shade_double_2.png
Shade region under two curves

In addition, you can also shade the specific region under the curves using the fill_between function as explained in this article.