Pergunta

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?

Foi útil?

Solução

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top