Подтвердить что ты не робот

Написание численных значений на графике с помощью Matplotlib

Возможно ли, с Matplotlib, распечатать значения каждой точки на графике?

Например, если у меня есть:

x = numpy.range(0,10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])
pyplot.plot(x,y)

Как отображать значения y на графике (например, напечатать 5 возле точки (0,5), напечатать 3 возле точки (1,3) и т.д.)?

4b9b3361

Ответ 1

Вы можете использовать команду аннотировать для размещения текстовых аннотаций при любых значениях x и y, которые вы хотите. Чтобы разместить их точно в точках данных, вы могли бы сделать это

import numpy
from matplotlib import pyplot

x = numpy.arange(10)
y = numpy.array([5,3,4,2,7,5,4,6,3,2])

fig = pyplot.figure()
ax = fig.add_subplot(111)
ax.set_ylim(0,10)
pyplot.plot(x,y)
for i,j in zip(x,y):
    ax.annotate(str(j),xy=(i,j))

pyplot.show()

Если вы хотите немного уменьшить аннотации, вы можете изменить строку annotate на что-то вроде

ax.annotate(str(j),xy=(i,j+0.5))

Ответ 2

Используйте pylot.text()

x=[1,2,3]
y=[9,8,7]

pyplot.plot(x,y)
for a,b in zip(x, y): 
    pyplot.text(a, b, str(b))
pyplot.show()