In this recipe, we will show you how to fill the area under a curve or in between two different curves.
Library matplotlib allows us to fill areas in between and under the curves with color so that we can display the value of that area to the spectator. Sometimes, it is necessary for readers (viewers) to comprehend the given specialization.
Here's one example of how to fill areas between two contours:
from matplotlib.pyplot import figure, show, gca import numpy as np x = np.arange(0.0, 2, 0.01) # two different signals are measured y1 = np.sin(2*np.pi*x) y2 = 1.2*np.sin(4*np.pi*x) fig = figure() ax = gca() # plot and # fill between y1 and y2 where a logical condition is met ax.plot(x, y1, x, y2, color='black') ax.fill_between(x, y1, y2, where=y2>=y1, facecolor='darkblue', interpolate=True) ax.fill_between(x, y1, y2, where=y2<=y1, facecolor='deeppink', interpolate=True) ax.set_title('filled between') show()
After we have generated random signals for a predefined interval, we plot these two signals using a regular plot()
. Then we call fill_between()
with properties that are required and mandatory.
The function fill_between()
is using x
as the location from where to pick y
values (y1
, y2
) and will then plot the polygon in certain defined colors.
We specify a condition to fill the curve with the where
parameter, which accepts Boolean values (can be expressions) so that the fill happens only when the where
condition is met.
Similar to other functions for plotting, this function also accepts many more parameters like hatch
(to specify patterns to fill with instead of color) and line options (linewidth
and linestyle
).
There is also fill_betweenx()
, which enables similar fill features, but it does so between horizontal curves.
The more general function fill()
provides the ability to fill any polygon with a color or a hatch.