Я пытаюсь построить значения температуры по времени со временем, отформатированным как HH: MM. Я могу установить, чтобы xticks повторялись каждые 15 минут, но первый тик в первый раз (например, 04:40).Matplotlib: xticks каждые 15 минут, начиная с часа
Есть ли способ сдвинуть тики на час и на ближайшие четверть часа (04:45, 05:00, 05:15 и т. Д.)? Мой текущий код выглядит следующим образом:
import matplotlib.pyplot as plt
import matplotlib.dates as md
import datetime as dt
## Dummy times and temperatures
time = [dt.datetime(2017,2,15,4,40),dt.datetime(2017,2,15,4,46),dt.datetime(2017,2,15,4,52),dt.datetime(2017,2,15,4,58),dt.datetime(2017,2,15,5,4),dt.datetime(2017,2,15,5,10)]
temp = [7, 8, 9, 10, 11, 12]
## Plot the data
figtemp, ax = plt.subplots(1, 1)
ax.plot(time, temp)
## Set time format and the interval of ticks (every 15 minutes)
xformatter = md.DateFormatter('%H:%M')
xlocator = md.MinuteLocator(interval = 15)
## Set xtick labels to appear every 15 minutes
ax.xaxis.set_major_locator(xlocator)
## Format xtick labels as HH:MM
plt.gcf().axes[0].xaxis.set_major_formatter(xformatter)
Проблема заключается в том, что вам нужно знать часы, в которые данные происходят раньше. Также довольно неудобно вводить время вручную. – ImportanceOfBeingErnest
@ImportanceOfBeingErnest, PLS проверил мой отредактированный ответ. Я считаю, что ваше решение более элегантно. – SparkAndShine
Да, это решает проблему ручной установки часов и минут. Ницца. Но это действительно немного сложно для задачи, которая может быть выполнена в одной строке. – ImportanceOfBeingErnest