scatter-plot python - nuage de points de matplotlib avec un texte différent à chaque point de données





3d marker (3)


Dans la version antérieure à matplotlib 2.0, ax.scatter n'est pas nécessaire pour tracer du texte sans marqueurs. Dans la version 2.0, vous aurez besoin de ax.scatter pour définir la plage et les marqueurs appropriés pour le texte.

y=[2.56422, 3.77284,3.52623,3.51468,3.02199]
z=[0.15, 0.3, 0.45, 0.6, 0.75]
n=[58,651,393,203,123]

fig, ax = plt.subplots()

for i, txt in enumerate(n):
    ax.annotate(txt, (z[i],y[i]))

Et dans ce link vous pouvez trouver un exemple en 3D.

J'essaye de faire un nuage de points et d'annoter des points de données avec des nombres différents d'une liste. donc par exemple je veux tracer y vs x et annoter avec les nombres correspondants de n.

y=[2.56422, 3.77284,3.52623,3.51468,3.02199]
z=[0.15, 0.3, 0.45, 0.6, 0.75]
n=[58,651,393,203,123]
ax=fig.add_subplot(111)
ax1.scatter(z, y, fmt='o')

Des idées?




Je ne suis pas au courant d'une méthode de traçage qui prend des tableaux ou des listes, mais vous pouvez utiliser annotate() lors de l'itération sur les valeurs de n .

y=[2.56422, 3.77284,3.52623,3.51468,3.02199]
z=[0.15, 0.3, 0.45, 0.6, 0.75]
n=[58,651,393,203,123]

fig, ax = plt.subplots()
ax.scatter(z, y)

for i, txt in enumerate(n):
    ax.annotate(txt, (z[i],y[i]))

Il y a beaucoup d'options de formatage pour annotate() , voir le site matplotlib:




Plutôt que d'utiliser ax.plot(x,y, 'o') essayez ax.plot(x,y,'.') Ou ax.plot(x,y,'*' . Le 'o' spécifie le marker à utiliser, et le marqueur «o» est un grand cercle rempli, ce qui explique pourquoi votre intrigue semble moche.







text matplotlib scatter-plot annotate