matplot - Etiquetar puntos de datos de python en el diagrama
text matplot (1)
Busqué las edades (horas que son como las edades) para encontrar la respuesta a un problema realmente molesto (aparentemente básico), y como no puedo encontrar una pregunta que encaje bien con la respuesta, estoy publicando una pregunta y respondiéndola con la esperanza de que Le ahorraré a alguien más la gran cantidad de tiempo que acabo de pasar en mis habilidades de trazado de noobie.
Si desea etiquetar sus puntos de trazado usando matplotlib python
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
A = anyarray
B = anyotherarray
plt.plot(A,B)
for i,j in zip(A,B):
ax.annotate(''%s)'' %j, xy=(i,j), xytext=(30,0), textcoords=''offset points'')
ax.annotate(''(%s,'' %i, xy=(i,j))
plt.grid()
plt.show()
Sé que xytext = (30,0) va junto con los códigos de texto, usa esos 30,0 valores para colocar el punto de etiqueta de datos, por lo que está en el eje 0 y 30 más en el eje x en su propia área pequeña.
Necesita las dos líneas que trazan i yj; de lo contrario, solo trazará la etiqueta de datos xoy.
Obtienes algo como esto (fíjate en las etiquetas solamente):
No es ideal, todavía hay cierta superposición, pero es mejor que nada, que es lo que tenía ...
¿Qué tal imprimir (x, y)
a la vez.
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
A = -0.75, -0.25, 0, 0.25, 0.5, 0.75, 1.0
B = 0.73, 0.97, 1.0, 0.97, 0.88, 0.73, 0.54
plt.plot(A,B)
for xy in zip(A, B): # <--
ax.annotate(''(%s, %s)'' % xy, xy=xy, textcoords=''data'') # <--
plt.grid()
plt.show()