Использование временных интервалов с пустым типом datetime64 в гистограмме matplolib - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь построить горизонтальную линейку, где столбцы представляют последующие интервалы времени.Пока это мой подход:

import matplotlib.pyplot as plt
import numpy as np

date1 = np.datetime64('2014-12-31')
date2 = np.datetime64('2014-10-30')

fig = plt.figure( figsize=(12,8) )
ax1 = fig.add_subplot( 111 )

# make horizontal bar plot
ax1.barh( 1., width=(date1-date2), height=.3, left=date1, align='center' )

plt.show()

Matplotlib, однако, не нравится.Это сообщение об ошибке, которое я получаю:

TypeError: ufunc add cannot use operands with types dtype('float64') and dtype('<m8[D]')

Похоже, что matplotlib недоволен временным интервалом, который используется в качестве ширины бара.Любой намек, как сделать Matplotlib снова счастливым?

Я использую numpy 1.15.1 и matplotlib 2.2.3.

1 Ответ

0 голосов
/ 10 октября 2018

Вы ищете что-то подобное?Не очень понятно, как бы вы хотели, чтобы высота до определенной отметки времени.

width = (date1-date2) / np.timedelta64(1, 'D')
ax1.barh(1., width=width, align='center')

ax1.set_xticklabels([date2 + np.timedelta64(x, 'D') for x in range(1, int(width)+1)])

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...