Метки точек данных python на графике
Я искал века (часы, которые похожи на возраст), чтобы найти ответ на действительно раздражающую (казалось бы, основную) проблему, и потому что я не могу найти вопрос, который вполне соответствует ответу, я отправляю вопрос и отвечаю на него в надежде, что это сэкономит кому-то еще огромное количество времени, которое я только что потратил на свои навыки построения noobie.
Если вы хотите пометить свои точки участка с помощью python matplotlib
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()
Я знаю, что xytext=(30,0) идет вместе с textcoords, вы используете эти 30,0 значения для размещения точки метки данных, поэтому ее на оси 0 y и 30 на оси x на своей собственной небольшой площади.
вам нужны обе линии, изображающие i и j в противном случае вы только строите метку данных x или y.
вы получаете что-то вроде этого (обратите внимание только на метки):
это не идеально, есть еще некоторые перекрытия - но это лучше, чем ничего, что у меня было..
1 ответ:
Как насчет печати
(x, y)
сразу.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()