matplotlib.patches.ConnectionStyle#

class matplotlib.patches.ConnectionStyle(stylename, **kwargs)[source]#

Bases: _Style

ConnectionStyle is a container class which defines several connectionstyle classes, which is used to create a path between two points. These are mainly used with FancyArrowPatch.

A connectionstyle object can be either created as:

ConnectionStyle.Arc3(rad=0.2)

or:

ConnectionStyle("Arc3", rad=0.2)

or:

ConnectionStyle("Arc3, rad=0.2")

The following classes are defined

Class

Name

Attrs

Arc3

arc3

rad=0.0

Angle3

angle3

angleA=90, angleB=0

Angle

angle

angleA=90, angleB=0, rad=0.0

Arc

arc

angleA=0, angleB=0, armA=None, armB=None, rad=0.0

Bar

bar

armA=0.0, armB=0.0, fraction=0.3, angle=None

An instance of any connection style class is a callable object, whose call signature is:

__call__(self, posA, posB,
         patchA=None, patchB=None,
         shrinkA=2., shrinkB=2.)

and it returns a Path instance. posA and posB are tuples of (x, y) coordinates of the two points to be connected. patchA (or patchB) is given, the returned path is clipped so that it start (or end) from the boundary of the patch. The path is further shrunk by shrinkA (or shrinkB) which is given in points.

Return the instance of the subclass with the given style name.

class Angle(angleA=90, angleB=0, rad=0.0)[source]#

Bases: _Base

Creates a piecewise continuous quadratic Bézier path between two points. The path has a one passing-through point placed at the intersecting point of two lines which cross the start and end point, and have a slope of angleA and angleB, respectively. The connecting edges are rounded with rad.

Parameters:
angleAfloat

Starting angle of the path.

angleBfloat

Ending angle of the path.

radfloat

Rounding radius of the edge.

connect(posA, posB)[source]#
class Angle3(angleA=90, angleB=0)[source]#

Bases: _Base

Creates a simple quadratic Bézier curve between two points. The middle control point is placed at the intersecting point of two lines which cross the start and end point, and have a slope of angleA and angleB, respectively.

Parameters:
angleAfloat

Starting angle of the path.

angleBfloat

Ending angle of the path.

connect(posA, posB)[source]#
class Arc(angleA=0, angleB=0, armA=None, armB=None, rad=0.0)[source]#

Bases: _Base

Creates a piecewise continuous quadratic Bézier path between two points. The path can have two passing-through points, a point placed at the distance of armA and angle of angleA from point A, another point with respect to point B. The edges are rounded with rad.

Parameters:
angleAfloat

Starting angle of the path.

angleBfloat

Ending angle of the path.

armAfloat or None

Length of the starting arm.

armBfloat or None

Length of the ending arm.

radfloat

Rounding radius of the edges.

connect(posA, posB)[source]#
class Arc3(rad=0.0)[source]#

Bases: _Base

Creates a simple quadratic Bézier curve between two points. The curve is created so that the middle control point (C1) is located at the same distance from the start (C0) and end points(C2) and the distance of the C1 to the line connecting C0-C2 is rad times the distance of C0-C2.

Parameters:
radfloat

Curvature of the curve.

connect(posA, posB)[source]#
class Bar(armA=0.0, armB=0.0, fraction=0.3, angle=None)[source]#

Bases: _Base

A line with angle between A and B with armA and armB. One of the arms is extended so that they are connected in a right angle. The length of armA is determined by (armA + fraction x AB distance). Same for armB.

Parameters:
armAfloat

Minimum length of armA.

armBfloat

Minimum length of armB.

fractionfloat

A fraction of the distance between two points that will be added to armA and armB.

anglefloat or None

Angle of the connecting line (if None, parallel to A and B).

connect(posA, posB)[source]#