# matplotlib.axes.Axes.fill_between¶

`Axes.``fill_between`(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs)[source]

Fill the area between two horizontal curves.

The curves are defined by the points (x, y1) and (x, y2). This creates one or multiple polygons describing the filled area.

You may exclude some horizontal sections from filling using where.

By default, the edges connect the given points directly. Use step if the filling should be a step function, i.e. constant in between x.

Parameters:
x : array (length N)

The x coordinates of the nodes defining the curves.

y1 : array (length N) or scalar

The y coordinates of the nodes defining the first curve.

y2 : array (length N) or scalar, optional, default: 0

The y coordinates of the nodes defining the second curve.

where : array of bool (length N), optional, default: None

Define where to exclude some horizontal regions from being filled. The filled regions are defined by the coordinates `x[where]`. More precisely, fill between `x[i]` and `x[i+1]` if `where[i] and where[i+1]`. Note that this definition implies that an isolated True value between two False values in where will not result in filling. Both sides of the True position remain unfilled due to the adjacent False values.

interpolate : bool, optional

This option is only relvant if where is used and the two curves are crossing each other.

Semantically, where is often used for y1 > y2 or similar. By default, the nodes of the polygon defining the filled region will only be placed at the positions in the x array. Such a polygon cannot describe the above semantics close to the intersection. The x-sections containing the intersecion are simply clipped.

Setting interpolate to True will calculate the actual interscection point and extend the filled region up to this point.

step : {‘pre’, ‘post’, ‘mid’}, optional

Define step if the filling should be a step function, i.e. constant in between x. The value determines where the step will occur:

• ‘pre’: The y value is continued constantly to the left from every x position, i.e. the interval `(x[i-1], x[i]]` has the value `y[i]`.
• ‘post’: The y value is continued constantly to the right from every x position, i.e. the interval `[x[i], x[i+1])` has the value `y[i]`.
• ‘mid’: Steps occur half-way between the x positions.
Returns:
`.PolyCollection`

A `PolyCollection` containing the plotted polygons.

Other Parameters:
**kwargs

All other keyword arguments are passed on to `PolyCollection`. They control the `Polygon` properties:

Property Description
`agg_filter` a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array
`alpha` float or None
`animated` bool
`antialiased` or antialiaseds Boolean or sequence of booleans
`array` ndarray
`capstyle` unknown
`clim` a length 2 sequence of floats; may be overridden in methods that have `vmin` and `vmax` kwargs.
`clip_box` a `Bbox` instance
`clip_on` bool
`clip_path` [(`Path`, `Transform`) | `Patch` | None]
`cmap` a colormap or registered colormap name
`color` matplotlib color arg or sequence of rgba tuples
`contains` a callable function
`edgecolor` or edgecolors matplotlib color spec or sequence of specs
`facecolor` or facecolors matplotlib color spec or sequence of specs
`figure` a `Figure` instance
`gid` an id string
`hatch` [ ‘/’ | ‘' | ‘|’ | ‘-‘ | ‘+’ | ‘x’ | ‘o’ | ‘O’ | ‘.’ | ‘*’ ]
`joinstyle` unknown
`label` object
`linestyle` or dashes or linestyles [‘solid’ | ‘dashed’, ‘dashdot’, ‘dotted’ | (offset, on-off-dash-seq) | `'-'` | `'--'` | `'-.'` | `':'` | `'None'` | `' '` | `''`]
`linewidth` or linewidths or lw float or sequence of floats
`norm` `Normalize`
`offset_position` [ ‘screen’ | ‘data’ ]
`offsets` float or sequence of floats
`path_effects` `AbstractPathEffect`
`picker` [None | bool | float | callable]
`pickradius` float distance in points
`rasterized` bool or None
`sketch_params` (scale: float, length: float, randomness: float)
`snap` bool or None
`transform` `Transform`
`url` a url string
`urls` List[str] or None
`visible` bool
`zorder` float

`fill_betweenx`