Позиционировать текст в matplotlib с датой в качестве оси

Я пытаюсь разместить текст с помощью метода .text () в matplotlib. Моя ось x отформатирована как datetime64. Он работает так, как рекламируется, но, тем не менее, я получаю сообщение об ошибке, как показано ниже.

Мой код:

fix, ax = plt.subplots()
ax.plot(x,y)
ax.text('2014-11-01', 82, 'Text goes here', fontsize=26, weight='bold', alpha=.8)
plt.text('2014-11-01', 77, s= 'Subtitle text goes here', fontsize=18)

Что возвращает график, как ожидалось: сюжет с текстом

Вдобавок возникает ошибка:

TypeError: must be real number, not str

Меня это очень смущает. Я также попытался передать число через метод matplotlib date.date2num (t), но это не увенчалось успехом.

1
0
389
1

Ответы 1

Вам необходимо передать .text() координаты до фактического текста, который вы хотите вставить. Например:

>>> text(0.5, 0.5,'matplotlib', horizontalalignment='center',
...      verticalalignment='center',
...      transform=ax.transAxes)

Возникающая ошибка вызвана передачей строки ('2014-11-01'), в которой метод ожидает число.

Смотрите документы.

Я передал координаты x и y. Координата x - это просто дата, поскольку ось x отформатирована как дата. Использование любого числа, которое является логичным для даты, возвращает диаграмму, которая слишком велика для отображения. Следовательно, я попробовал метод даты и числа. Как передать число в .text (), если ось x отформатирована как дата?

Robert Ritz 26.10.2018 06:15

Другие вопросы по теме