Я шукав віки (години, подібні до віків), щоб знайти відповідь на справді надокучливу (здавалося б, базову) проблему, і оскільки я не можу знайти питання, яке цілком відповідає відповіді, я публікую запитання і відповідаю на нього в надії, що воно заощадить комусь іншому величезну кількість часу, який я щойно витратив на свої навички заговору нубі.
Якщо ви хочете позначити точки сюжету за допомогою 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) поєднується з текстовими зв’язками, ви використовуєте ці значення 30,0 для позиціонування точки мітки даних, отже, на осі 0 y та 30 на осі x на своїй маленькій області.
Вам потрібні обидві лінії, що наносять i та j, інакше ви наносите лише мітку даних x або y.
Ви отримуєте щось подібне (зверніть увагу лише на ярлики):
Це не ідеально, все ще є певне перекриття - але це краще, ніж ніщо, що я мав ..
ax.annotate('(%s, %s)' % (i, j), ...)
? (Або якщо ви використовуєте новіше форматування рядків,.'({}, {})'.format(i, j)
)