Ошибка аннотации Matplotlib - PullRequest
0 голосов
/ 02 июня 2018

Я пытался найти решение, чтобы решить эту ошибку, но не могу его получить.

# example data
month_no_list_svc_log = ["Nov", "Dec", "Jan", "Feb", "March", "April"]
event_count_by_month_list_svc_log = [10, 20, 30, 40, 50, 60]

fig, ax = plt.subplots(1,2, figsize = (10,4))
ax[0].plot(np.arange(len(month_no_list_svc_log)),event_count_by_month_list_svc_log)

# I do this to sort the months name the way I want it to
ax[0].set_xticks(np.arange(len(month_no_list_svc_log)))
ax[0].set_xticklabels(month_no_list_svc_log)

for i, txt in enumerate(event_count_by_month_list_svc_log):
    # the code below generates an error
    ax[0].annotate(txt, (month_no_list_svc_log[i],event_count_by_month_list_svc_log[i]))

Я получаю сообщение об ошибке:

Объект 'NoneType' не имеет атрибута'seq'

1 Ответ

0 голосов
/ 02 июня 2018

Ваша x-координата в annotate должна быть значением на оси x, которое вы указали для plot.Там вы использовали индекс месяцев в month_no_list_svc_log, поэтому он будет соответствовать значению i в вашем цикле for.Также вы можете повторно использовать txt, здесь переименованный в count, следующим образом:

for i, count in enumerate(event_count_by_month_list_svc_log):
    ax[0].annotate(count, (i, count))

Кстати: если вы хотите, чтобы ваша ось х была arange той же длины, что и вашаДанные оси Y, вы можете просто пропустить параметр оси X в вызове сюжета:

ax[0].plot(event_count_by_month_list_svc_log)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...