Я показываю некоторые измеренные скорости от автомобилей на графике рассеяния.Я хотел бы показать, что низкие скорости часто происходят в определенные периоды дня.Графики работают нормально, но меня не устраивает ось Y.
import pandas as pd
import matplotlib.pyplot as plt
Time = ['2018-03-16 16:15', '2018-03-16 16:30', '2018-03-16 16:45']
Speed = [56, 46, 51]
df = pd.DataFrame({'Time':pd.to_datetime(Time), 'Speed':Speed})
df.set_index('Time', inplace=True)
plt.scatter(df.index, df.index.time)
plt.xlim('2018-03-04','2018-03-31')
plt.ylim('06:00','20:00')
plt.show()
Дает
Я бы хотелось Y включает только полные часы (может быть, 06:00, 12:00, 16:00 и 20:00)
Я пробовал что-то вроде
fig,ax = plt.subplots()
hours =mdates.HourLocator(interval=1)
h_fmt =mdates.DateFormatter('%H')
ax.scatter(df.index, df.index.time)
ax.yaxis.set_major_locator(hours)
ax.yaxis.set_major_formatter(h_fmt)
fig.autofmt_xdate()
plt.show()
, что, кажется,генерирует множество тиков.
У кого-нибудь есть решение для этого?