I want to use a single text annotation to annotate multiple data points with a few arrows. I made an easy way:
ax = plt.gca() ax.plot([1,2,3,4],[1,4,2,6]) an1 = ax.annotate('Test', xy=(2,4), xycoords='data', xytext=(30,-80), textcoords='offset points', arrowprops=dict(arrowstyle="-|>", connectionstyle="arc3,rad=0.2", fc="w")) an2 = ax.annotate('Test', xy=(3,2), xycoords='data', xytext=(0,0), textcoords=an1, arrowprops=dict(arrowstyle="-|>", connectionstyle="arc3,rad=0.2", fc="w")) plt.show()
Result of the following result: 
But I don’t really like it because it is ... well, an ugly dirty hack.
In addition, this affects the appearance of the annotation (mainly if translucent bbox, etc. are used).
So, if someone has a real solution, or at least the idea of implementing it, share it.