Запись числовых значений на графике с Matplotlib - PullRequest
33 голосов
/ 08 июня 2011

Можно ли с 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) и т. Д.)?

Ответы [ 2 ]

45 голосов
/ 08 июня 2011

Вы можете использовать команду annotate для размещения текстовых аннотаций в любых значениях 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))
12 голосов
/ 16 марта 2016

Использование 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...