Bonjour à tous

J'ai un petit souci de flèche lorsque j'utilise la commande annotate.
Je souhaite annoter un graphique sur un certain intervalle.
Ce que j'utilise actuellement est alors présenté sur l'image ci-dessous à la hauteur y=0.2

Mon souci est que les flèches ne se touchent pas...
Alors que pourtant, la première flèche se termine là où commence la première (à x=100 dans le code)

En fouillant dans la doc, je trouve un paramètre de la commande annotate, nommé shrink.
Ce que j'essaie en y=0.3 sur l'image.

Là déjà première bizarrerie, c'est que l'épaisseur du trait que j'ai spécifié ne semble plus du tout interprété de la même manière ...
Cela dit le paramètre "shrink" mis à 0, me fait bien toucher les 2 flèches.

Sauf qu'en voulant spécifier à la fois le "shrink" et à la fois le "arrowstyle", comme présenté en commentaire dans le code ci-dessous, j'obtiens le message d'erreur suivant :
blabla
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib-1.5.1_1342.g1ca5977-py2.7-macosx-10.6-intel.egg/matplotlib/artist.py", line 879, in _update_property
raise AttributeError('Unknown property %s' % k)
AttributeError: Unknown property shrink
Il semblerait donc que ces deux options ne s'entendent pas bien ...
Si qqn a une solution pour les faire coopérer ou bien qqch d'alternatif, je suis preneur.

Merci de votre aide.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
from matplotlib import pyplot as plt
 
fig, ax1 = plt.subplots()
 
for i in range(2):
    tini=100*i; tend=100*(i+1)
 
    ax1.annotate('', xy=(tini,.2), xytext=(tend,.2),
                arrowprops=dict(facecolor='black', lw=1.3, arrowstyle="<|-|>")
                )
 
    ax1.annotate('', xy=(tini,.3), xytext=(tend,.3),
                arrowprops=dict(facecolor='black', lw=1.3, shrink=0)
                )
 
##### Fournit une erreur    
##    ax1.annotate('', xy=(tini,.4), xytext=(tend,.4),
##                arrowprops=dict(facecolor='black', lw=1.3, shrink=0, arrowstyle="<|-|>")
##                )
 
    for j in range(2,5):
        ax1.text( 0.5*tini+0.5*tend, .1*j, 'text'+str(i+1), horizontalalignment='center',
              verticalalignment='bottom' )
 
 
ax1.set_xlim([0,200])
 
plt.show()
Nom : test.png
Affichages : 132
Taille : 15,5 Ko