# matplotlib.patheffects¶

Defines classes for path effects. The path effects are supported in Text, Line2D and Patch.

class matplotlib.patheffects.AbstractPathEffect(offset=(0.0, 0.0))[source]

Bases: object

A base class for path effects.

Subclasses should override the draw_path method to add effect functionality.

Parameters: offset(float, float), default: (0, 0)The (x, y) offset to apply to the path, measured in points.
draw_path(renderer, gc, tpath, affine, rgbFace=None)[source]

Derived should override this method. The arguments are the same as matplotlib.backend_bases.RendererBase.draw_path() except the first argument is a renderer.

class matplotlib.patheffects.Normal(offset=(0.0, 0.0))[source]

The "identity" PathEffect.

The Normal PathEffect's sole purpose is to draw the original artist with no special path effect.

Parameters: offset(float, float), default: (0, 0)The (x, y) offset to apply to the path, measured in points.
class matplotlib.patheffects.PathEffectRenderer(path_effects, renderer)[source]

Implements a Renderer which contains another renderer.

This proxy then intercepts draw calls, calling the appropriate AbstractPathEffect draw method.

Note

Not all methods have been overridden on this RendererBase subclass. It may be necessary to add further methods to extend the PathEffects capabilities further.

Parameters: path_effectsiterable of AbstractPathEffectThe path effects which this renderer represents. renderer
copy_with_path_effect(path_effects)[source]
draw_markers(gc, marker_path, marker_trans, path, *args, **kwargs)[source]

Draw a marker at each of path's vertices (excluding control points).

This provides a fallback implementation of draw_markers that makes multiple calls to draw_path(). Some backends may want to override this method in order to draw the marker only once and reuse it multiple times.

Parameters: gcGraphicsContextBaseThe graphics context. marker_transmatplotlib.transforms.TransformAn affine transform applied to the marker. transmatplotlib.transforms.TransformAn affine transform applied to the path.
draw_path(gc, tpath, affine, rgbFace=None)[source]

Draw a Path instance using the given affine transform.

draw_path_collection(gc, master_transform, paths, *args, **kwargs)[source]

Draw a collection of paths selecting drawing properties from the lists facecolors, edgecolors, linewidths, linestyles and antialiaseds. offsets is a list of offsets to apply to each of the paths. The offsets in offsets are first transformed by offsetTrans before being applied.

offset_position may be either "screen" or "data" depending on the space that the offsets are in; "data" is deprecated.

This provides a fallback implementation of draw_path_collection() that makes multiple calls to draw_path(). Some backends may want to override this in order to render each set of path data only once, and then reference that path multiple times with the different offsets, colors, styles etc. The generator methods _iter_collection_raw_paths() and _iter_collection() are provided to help with (and standardize) the implementation across backends. It is highly recommended to use those generators, so that changes to the behavior of draw_path_collection() can be made globally.

class matplotlib.patheffects.PathPatchEffect(offset=(0, 0), **kwargs)[source]

Draws a PathPatch instance whose Path comes from the original PathEffect artist.

Parameters: offset(float, float), default: (0, 0)The (x, y) offset to apply to the path, in points. **kwargsAll keyword arguments are passed through to the PathPatch constructor. The properties which cannot be overridden are "path", "clip_box" "transform" and "clip_path".
draw_path(renderer, gc, tpath, affine, rgbFace)[source]

Derived should override this method. The arguments are the same as matplotlib.backend_bases.RendererBase.draw_path() except the first argument is a renderer.

class matplotlib.patheffects.SimpleLineShadow(offset=(2, - 2), shadow_color='k', alpha=0.3, rho=0.3, **kwargs)[source]

A simple shadow via a line.

Parameters: offset(float, float), default: (2, -2)The (x, y) offset to apply to the path, in points. shadow_colorcolor, default: 'black'The shadow color. A value of None takes the original artist's color with a scale factor of rho. alphafloat, default: 0.3The alpha transparency of the created shadow patch. rhofloat, default: 0.3A scale factor to apply to the rgbFace color if shadow_color is None. **kwargsExtra keywords are stored and passed through to AbstractPathEffect._update_gc().
draw_path(renderer, gc, tpath, affine, rgbFace)[source]

class matplotlib.patheffects.SimplePatchShadow(offset=(2, - 2), shadow_rgbFace=None, alpha=None, rho=0.3, **kwargs)[source]

A simple shadow via a filled patch.

Parameters: offset(float, float), default: (2, -2)The (x, y) offset of the shadow in points. shadow_rgbFacecolorThe shadow color. alphafloat, default: 0.3The alpha transparency of the created shadow patch. http://matplotlib.1069221.n5.nabble.com/path-effects-question-td27630.html rhofloat, default: 0.3A scale factor to apply to the rgbFace color if shadow_rgbFace is not specified. **kwargsExtra keywords are stored and passed through to AbstractPathEffect._update_gc().
draw_path(renderer, gc, tpath, affine, rgbFace)[source]

class matplotlib.patheffects.Stroke(offset=(0, 0), **kwargs)[source]

A line based PathEffect which re-draws a stroke.

The path will be stroked with its gc updated with the given keyword arguments, i.e., the keyword arguments should be valid gc parameter values.

draw_path(renderer, gc, tpath, affine, rgbFace)[source]

Draw the path with updated gc.

class matplotlib.patheffects.TickedStroke(offset=(0, 0), spacing=10.0, angle=45.0, length=1.4142135623730951, **kwargs)[source]

A line-based PathEffect which draws a path with a ticked style.

This line style is frequently used to represent constraints in optimization. The ticks may be used to indicate that one side of the line is invalid or to represent a closed boundary of a domain (i.e. a wall or the edge of a pipe).

The spacing, length, and angle of ticks can be controlled.

This line style is sometimes referred to as a hatched line.

Parameters: offset(float, float), default: (0, 0)The (x, y) offset to apply to the path, in points. spacingfloat, default: 10.0The spacing between ticks in points. anglefloat, default: 45.0The angle between the path and the tick in degrees. The angle is measured as if you were an ant walking along the curve, with zero degrees pointing directly ahead, 90 to your left, -90 to your right, and 180 behind you. lengthfloat, default: 1.414The length of the tick relative to spacing. Recommended length = 1.414 (sqrt(2)) when angle=45, length=1.0 when angle=90 and length=2.0 when angle=60. **kwargsExtra keywords are stored and passed through to AbstractPathEffect._update_gc().

Examples

draw_path(renderer, gc, tpath, affine, rgbFace)[source]

Draw the path with updated gc.

class matplotlib.patheffects.withSimplePatchShadow(offset=(2, - 2), shadow_rgbFace=None, alpha=None, rho=0.3, **kwargs)

A shortcut PathEffect for applying SimplePatchShadow and then drawing the original Artist.

With this class you can use

artist.set_path_effects([path_effects.withSimplePatchShadow()])


as a shortcut for

artist.set_path_effects([path_effects.SimplePatchShadow(),
path_effects.Normal()])

Parameters: offset(float, float), default: (2, -2)The (x, y) offset of the shadow in points. shadow_rgbFacecolorThe shadow color. alphafloat, default: 0.3The alpha transparency of the created shadow patch. http://matplotlib.1069221.n5.nabble.com/path-effects-question-td27630.html rhofloat, default: 0.3A scale factor to apply to the rgbFace color if shadow_rgbFace is not specified. **kwargsExtra keywords are stored and passed through to AbstractPathEffect._update_gc().
draw_path(renderer, gc, tpath, affine, rgbFace)

class matplotlib.patheffects.withStroke(offset=(0, 0), **kwargs)

A shortcut PathEffect for applying Stroke and then drawing the original Artist.

With this class you can use

artist.set_path_effects([path_effects.withStroke()])


as a shortcut for

artist.set_path_effects([path_effects.Stroke(),
path_effects.Normal()])


The path will be stroked with its gc updated with the given keyword arguments, i.e., the keyword arguments should be valid gc parameter values.

draw_path(renderer, gc, tpath, affine, rgbFace)

Draw the path with updated gc.

class matplotlib.patheffects.withTickedStroke(offset=(0, 0), spacing=10.0, angle=45.0, length=1.4142135623730951, **kwargs)

A shortcut PathEffect for applying TickedStroke and then drawing the original Artist.

With this class you can use

artist.set_path_effects([path_effects.withTickedStroke()])


as a shortcut for

artist.set_path_effects([path_effects.TickedStroke(),
path_effects.Normal()])

Parameters: offset(float, float), default: (0, 0)The (x, y) offset to apply to the path, in points. spacingfloat, default: 10.0The spacing between ticks in points. anglefloat, default: 45.0The angle between the path and the tick in degrees. The angle is measured as if you were an ant walking along the curve, with zero degrees pointing directly ahead, 90 to your left, -90 to your right, and 180 behind you. lengthfloat, default: 1.414The length of the tick relative to spacing. Recommended length = 1.414 (sqrt(2)) when angle=45, length=1.0 when angle=90 and length=2.0 when angle=60. **kwargsExtra keywords are stored and passed through to AbstractPathEffect._update_gc().

Examples

draw_path(renderer, gc, tpath, affine, rgbFace)

Draw the path with updated gc.