#rng = pd.date_range('1/5/2018 00:00', periods=5, freq='35T')
#df = pd.DataFrame({'POA':randint(1, 10, 5)}, index=rng)
labels = df.index.strftime('%H:%M')
x = np.arange(len(labels))
plt.plot(x, df['POA'])
plt.xticks(x, labels)
Шаги:
labels = df.index.strftime('%H:%M')
=> Преобразовать дату и время в формат «Часы: минуты» для использования в качестве меток x
x = np.arange(len(labels))
=> Создать фиктивную ось x для matplotlib
plt.plot(x, df['POA'])
=> Сделать сюжет
plt.xticks(x, labels)
=> Заменить метки x на дату и время
Предположение: индекс даты и времени сортируется, если нет, то график будет испорчен. Если индекс не в порядке сортировки, то сортируйте его перед построением графика для получения правильных результатов.
Мы можем дополнительно расширить ось x, включив в нее секунды, даты и т. Д., Используя соответствующий формататор строк в df.index.strftime
Решение с пропуском x-ticks, чтобы избежать наклеивания x-меток
#rng = pd.date_range('1/5/2018 00:00', periods=50, freq='35T')
#df = pd.DataFrame({'POA':randint(1, 10, 50)}, index=rng)
labels = df.index.strftime('%H:%M')
x = np.arange(len(labels))
fig, ax = plt.subplots()
plt.plot(x, df['POA'])
plt.xticks(x, labels)
skip_every_n = 10
for i, x_label in enumerate(ax.xaxis.get_ticklabels()):
if i % skip_every_n != 0:
x_label.set_visible(False)