0

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?

Community
  • 1
  • 1
Saullo G. P. Castro
  • 56,802
  • 26
  • 179
  • 234

1 Answers1

0

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
Saullo G. P. Castro
  • 56,802
  • 26
  • 179
  • 234