matplotlib.patches.Patch#
- classmatplotlib.patches.Patch(*,edgecolor=None,facecolor=None,color=None,linewidth=None,linestyle=None,antialiased=None,hatch=None,fill=True,capstyle=None,joinstyle=None,**kwargs)[source]#
Bases:
Artist
A patch is a 2D artist with a face color and an edge color.
If any ofedgecolor,facecolor,linewidth, orantialiasedareNone, they default to their rc params setting.
The following kwarg properties are supported
Property
Description
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
unknown
bool
bool or None
CapStyle
or {'butt', 'projecting', 'round'}BboxBase
or Nonebool
Patch or (Path, Transform) or None
color or None
color or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
unknown
bool
JoinStyle
or {'miter', 'round', 'bevel'}object
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
float or None
bool
list of
AbstractPathEffect
None or bool or float or callable
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
- contains(mouseevent,radius=None)[source]#
Test whether the mouse event occurred in the patch.
- Parameters:
- mouseevent
MouseEvent
Where the user clicked.
- radiusfloat, optional
Additional margin on the patch in target coordinates of
Patch.get_transform
. SeePath.contains_point
for furtherdetails.If
None
, the default value depends on the state of the object:If
Artist.get_picker
is a number, the defaultis that value. This is so that picking works as expected.Otherwise if the edge color has a non-zero alpha, the defaultis half of the linewidth. This is so that all the coloredpixels are "in" the patch.
Finally, if the edge has 0 alpha, the default is 0. This isso that patches without a stroked edge do not have pointsoutside of the filled region report as "in" due to aninvisible edge.
- mouseevent
- Returns:
- (bool, empty dict)
- contains_point(point,radius=None)[source]#
Return whether the given point is inside the patch.
- Parameters:
- point(float, float)
The point (x, y) to check, in target coordinates of
.Patch.get_transform()
. These are display coordinates for patchesthat are added to a figure or Axes.- radiusfloat, optional
Additional margin on the patch in target coordinates of
Patch.get_transform
. SeePath.contains_point
for furtherdetails.If
None
, the default value depends on the state of the object:If
Artist.get_picker
is a number, the defaultis that value. This is so that picking works as expected.Otherwise if the edge color has a non-zero alpha, the defaultis half of the linewidth. This is so that all the coloredpixels are "in" the patch.
Finally, if the edge has 0 alpha, the default is 0. This isso that patches without a stroked edge do not have pointsoutside of the filled region report as "in" due to aninvisible edge.
- Returns:
- bool
Notes
The proper use of this method depends on the transform of the patch.Isolated patches do not have a transform. In this case, the patchcreation coordinates and the point coordinates match. The followingexample checks that the center of a circle is within the circle
>>>center=0,0>>>c=Circle(center,radius=1)>>>c.contains_point(center)True
The convention of checking against the transformed patch stems fromthe fact that this method is predominantly used to check if displaycoordinates (e.g. from mouse events) are within the patch. If you wantto do the above check with data coordinates, you have to properlytransform them first:
>>>center=0,0>>>c=Circle(center,radius=3)>>>plt.gca().add_patch(c)>>>transformed_interior_point=c.get_data_transform().transform((0,2))>>>c.contains_point(transformed_interior_point)True
- contains_points(points,radius=None)[source]#
Return whether the given points are inside the patch.
- Parameters:
- points(N, 2) array
The points to check, in target coordinates of
self.get_transform()
. These are display coordinates for patchesthat are added to a figure or Axes. Columns contain x and y values.- radiusfloat, optional
Additional margin on the patch in target coordinates of
Patch.get_transform
. SeePath.contains_point
for furtherdetails.If
None
, the default value depends on the state of the object:If
Artist.get_picker
is a number, the defaultis that value. This is so that picking works as expected.Otherwise if the edge color has a non-zero alpha, the defaultis half of the linewidth. This is so that all the coloredpixels are "in" the patch.
Finally, if the edge has 0 alpha, the default is 0. This isso that patches without a stroked edge do not have pointsoutside of the filled region report as "in" due to aninvisible edge.
- Returns:
- length-N bool array
Notes
The proper use of this method depends on the transform of the patch.See the notes on
Patch.contains_point
.
- draw(renderer)[source]#
Draw the Artist (and its children) using the given renderer.
This has no effect if the artist is not visible (
Artist.get_visible
returns False).- Parameters:
- renderer
RendererBase
subclass.
- renderer
Notes
This method is overridden in the Artist subclasses.
- propertyfill#
Return whether the patch is filled.
- get_aa()[source]#
Alias for
get_antialiased
.
- get_ec()[source]#
Alias for
get_edgecolor
.
- get_fc()[source]#
Alias for
get_facecolor
.
- get_ls()[source]#
Alias for
get_linestyle
.
- get_lw()[source]#
Alias for
get_linewidth
.
- get_patch_transform()[source]#
Return the
Transform
instance mapping patch coordinatesto data coordinates.For example, one may define a patch of a circle which represents aradius of 5 by providing coordinates for a unit circle, and atransform which scales the coordinates (the patch coordinate) by 5.
- get_verts()[source]#
Return a copy of the vertices used in this patch.
If the patch contains Bézier curves, the curves will be interpolated byline segments. To access the curves as curves, use
get_path
.
- get_window_extent(renderer=None)[source]#
Get the artist's bounding box in display space.
The bounding box' width and height are nonnegative.
Subclasses should override for inclusion in the bounding box"tight" calculation. Default is to return an empty boundingbox at 0, 0.
Be careful when using this function, the results will not updateif the artist window extent of the artist changes. The extentcan change due to any changes in the transform stack, such aschanging the Axes limits, the figure size, or the canvas used(as is done when saving a figure). This can lead to unexpectedbehavior where interactive figures will look fine on the screen,but will save incorrectly.
- set(*,agg_filter=<UNSET>,alpha=<UNSET>,animated=<UNSET>,antialiased=<UNSET>,capstyle=<UNSET>,clip_box=<UNSET>,clip_on=<UNSET>,clip_path=<UNSET>,color=<UNSET>,edgecolor=<UNSET>,facecolor=<UNSET>,fill=<UNSET>,gid=<UNSET>,hatch=<UNSET>,hatch_linewidth=<UNSET>,in_layout=<UNSET>,joinstyle=<UNSET>,label=<UNSET>,linestyle=<UNSET>,linewidth=<UNSET>,mouseover=<UNSET>,path_effects=<UNSET>,picker=<UNSET>,rasterized=<UNSET>,sketch_params=<UNSET>,snap=<UNSET>,transform=<UNSET>,url=<UNSET>,visible=<UNSET>,zorder=<UNSET>)[source]#
Set multiple properties at once.
Supported properties are
Property
Description
a filter function, which takes a (m, n, 3) float array and a dpi value, and returns a (m, n, 3) array and two offsets from the bottom left corner of the image
unknown
bool
bool or None
CapStyle
or {'butt', 'projecting', 'round'}BboxBase
or Nonebool
Patch or (Path, Transform) or None
color or None
color or None
bool
str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
unknown
bool
JoinStyle
or {'miter', 'round', 'bevel'}object
{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
float or None
bool
list of
AbstractPathEffect
None or bool or float or callable
bool
(scale: float, length: float, randomness: float)
bool or None
str
bool
float
- set_aa(aa)[source]#
Alias for
set_antialiased
.
- set_alpha(alpha)[source]#
Set the alpha value used for blending - not supported on all backends.
- Parameters:
- alphafloat or None
alpha must be within the 0-1 range, inclusive.
- set_capstyle(s)[source]#
Set the
CapStyle
.The default capstyle is 'round' for
FancyArrowPatch
and 'butt' forall other patches.- Parameters:
- s
CapStyle
or {'butt', 'projecting', 'round'}
- s
- set_color(c)[source]#
Set both the edgecolor and the facecolor.
- Parameters:
See also
Patch.set_facecolor
,Patch.set_edgecolor
For setting the edge or face color individually.
- set_ec(color)[source]#
Alias for
set_edgecolor
.
- set_fc(color)[source]#
Alias for
set_facecolor
.
- set_hatch(hatch)[source]#
Set the hatching pattern.
hatch can be one of:
/-diagonalhatching\-backdiagonal|-vertical--horizontal+-crossedx-crosseddiagonalo-smallcircleO-largecircle.-dots*-stars
Letters can be combined, in which case all the specifiedhatchings are done. If same letter repeats, it increases thedensity of hatching of that pattern.
- Parameters:
- hatch{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
- set_joinstyle(s)[source]#
Set the
JoinStyle
.The default joinstyle is 'round' for
FancyArrowPatch
and 'miter' forall other patches.- Parameters:
- s
JoinStyle
or {'miter', 'round', 'bevel'}
- s
- set_linestyle(ls)[source]#
Set the patch linestyle.
linestyle
description
'-'
or'solid'
solid line
'--'
or'dashed'
dashed line
'-.'
or'dashdot'
dash-dotted line
':'
or'dotted'
dotted line
'none'
,'None'
,''
, or''
draw nothing
Alternatively a dash tuple of the following form can be provided:
(offset,onoffseq)
where
onoffseq
is an even length tuple of on and off ink in points.- Parameters:
- ls{'-', '--', '-.', ':', '', (offset, on-off-seq), ...}
The line style.
- set_ls(ls)[source]#
Alias for
set_linestyle
.
- set_lw(w)[source]#
Alias for
set_linewidth
.
- zorder=1#
Examples usingmatplotlib.patches.Patch
#

Building histograms using Rectangles and PolyCollections

SkewT-logP diagram: using transforms and custom projections

Plot a confidence ellipse of a two-dimensional dataset

Create boxes from error bars using PatchCollection

Controlling view limits using margins and sticky_edges