Question

When willing to use customized arrow styles in matplotlib one can do the approach explained in this answer. But there is still an issue when shrinkA or shrinkB are specified.

I thought of a way to calculate these values using matplotlib functions, but without success, doing:

import matplotlib.patches as patches

orig = (1.1,2.)
target = (1.1,3.)
shrinkA = 10. # given in points
shrinkB = 0.
b = patches.ConnectionStyle('arc')
path = b.connect( orig, target )
path = b._shrink( path, shrinkA, shrinkB )

But nothing happens with path when I do that... any suggestions?

Était-ce utile?

La solution

The approach was quite correct, it seems that shrinkA and shrinkB should be given in a ratio value between 0. and 1.:

orig =   (1.1,2.)
target = (1.1,7.)
shrinkA = 0.1 # given in points
shrinkB = 0.1
b = patches.ConnectionStyle('Arc')
path = b.connect( orig, target )
path = b._shrink( path, shrinkA, shrinkB )

To get the new values for orig and target:

neworig, newtarget = path.vertices
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top