2017-09-27 4 views
0

J'essaye d'annoter deux points dans un diagramme de dispersion, mais en raison de la nature surpeuplée, ils deviennent très difficiles à voir.Annotation de flèche dans un nuage de points surpeuplé matplotlib

Y at-il de toute façon que je puisse mettre une flèche ou un pointeur qui pointe vers le point en question mais annote le nom dans l'espace vide loin des observations groupées?

enter image description here

plt.scatter(afb[:,0], afb[:,1], c="yellow") 
plt.title("Arrow Scatter", weight="bold", fontsize=20) 
plt.annotate("James", (a[812,0], a[812,1])) 
plt.annotate("Jane", (a[1067,0], a[1067,1])) 
plt.ylabel("2", fontsize=16) 
plt.xlabel("1", fontsize=16) 
plt.show() 

Merci

Répondre

1

Vous devez spécifier l'emplacement du texte d'annotation.

import matplotlib.pyplot as plt 

xy = range(20) 
plt.scatter(xy, xy, c='green', vmin=0, vmax=20, s=20) 
plt.title("Arrow Scatter", weight="bold", fontsize=20) 

# prep anno-text data 
text_location = (2,15) 
target_point = (xy[8],xy[8]) 

plt.annotate("Jane", target_point, text_location, 'data', \ 
       arrowprops=dict(arrowstyle="-|>", \ 
       connectionstyle="angle3", lw=1), \ 
       size=16, ha="center") 

plt.ylabel("2", fontsize=16) 
plt.xlabel("1", fontsize=16) 
plt.show() 

image résultante: enter image description here