En supposant que vous n'êtes pas complotez beaucoup de points de diffusion, vous pouvez simplement faire un scatter
pour chaque point:
import numpy as np; import matplotlib.pyplot as plt
y = np.arange(10) # points to plot
x=np.arange(10)
labels = np.arange(10) # labels of the points
fig, ax = plt.subplots(nrows=1, ncols=1)
for x_,y_,label in zip(x,y,labels):
ax.scatter([x_], [y_], label=label, picker=3)
Cela commencera à retard si vous complotez de milliers ou des dizaines de milliers de points, mais si ce n'est que quelques-uns, alors ce n'est pas un problème.
Pour répondre à la deuxième partie de votre question, ax.get_children()
renvoie une liste d'objets qui composent ces axes, par exemple:
[<matplotlib.axis.XAxis at 0x103acc410>,
<matplotlib.axis.YAxis at 0x103acddd0>,
<matplotlib.collections.PathCollection at 0x10308ba10>, #<--- this is a set of scatter points
<matplotlib.text.Text at 0x103082d50>,
<matplotlib.patches.Rectangle at 0x103082dd0>,
<matplotlib.spines.Spine at 0x103acc2d0>,
<matplotlib.spines.Spine at 0x103ac9f90>,
<matplotlib.spines.Spine at 0x103acc150>,
<matplotlib.spines.Spine at 0x103ac9dd0>]
Si vous êtes à la recherche pour obtenir les ensembles de points de dispersion dans vos axes, le moyen le plus simple est par ax.collections
. C'est un list
qui contient toutes les instances collections
tracées dans les axes (les points de dispersion appartiennent à PathCollection
).
In [9]: ax.collections
Out[9]: [<matplotlib.collections.PathCollection at 0x10308ba10>]
Si vous avez tracé un scatter
séparé pour chaque point, itérer sur les points est aussi facile que:
# iterate over points and turn them all red
for point in ax.collections:
point.set_facecolor("red")
utilisez 'annotate'. Il vous permet d'ajouter des étiquettes + flèches pointant vers des points arbitraires. – tacaswell
https://stackoverflow.com/questions/14938541/how-to-improve-the-label-placement-for-matplotlib-scatter-chart-code-algorithm/15859652#15859652 – tacaswell
Voulez-vous étiqueter chaque point (que est de mettre une étiquette de texte dans les axes pointant sur le point ou) voulez-vous une entrée de légende pour chaque point? – tacaswell