Я пытаюсь согласовать точечную аннотацию на точечной диаграмме Matplotlib с ручной настройкой предела, но либо получаю сообщение об ошибке, либо проблему проектирования.
Вот мой код:
fig, ax = plt.subplots(figsize = (20,10)) #manual limit setting
plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n): #dot annotation
ax.annotate(txt, (x[i], y[i]))
Вот скриншот вывода (я получил окончательный точечный график в виде маленького прямоугольника, расположенного в левом углу большого белого прямоугольника:
Я также пробовал:
fig, ax = plt.subplots(figsize = (20,10))
ax = plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)
for i, txt in enumerate(n):
ax.annotate(txt, (x[i], y[i]))
Но, конечно, я получил следующее сообщение об ошибке (хотя диаграмма отображается правильно, но без меток рядом с каждой соответствующей точкой).
AttributeError: 'list' object has no attribute 'annotate'
Ошибка возникает из-за того, что мой цикл пытается выполнить итерацию через ax = plt.axis([-2,3,-2.5,5])
, что на самом деле не имеет смысла.
Есть ли решение этой проблемы?
Спасибо
Какую версию matplotlib вы используете? Эта проблема все еще возникает в matplotlib 3.1.2? (Я думаю, что это уже исправлено, но если нет, было бы полезно знать.)