Я рисую фрейм данных, индекс которого имеет тип datetime (например, 2018-05-29 08:20:00
).
Я разрезаю данные на основе последнего часа и последнего дня и на прошлой неделе и в прошлом месяце , а затем я рисую их.
Данные собираются каждые один минуэт . Итак, индекс каждой строки отличается только на одну минуту.
Когда я рисую данные за последний час, ось x строится следующим образом:
Or, for the last month it is like:
which is clean and readable. But, when I plot the last day data the x-axis index is like:
Why it is overlapped? how to fix it?
the codes to plot these time frames are the same, just the given dataframe is changed:
self.canvas.axes.plot(df_day.index, df_day.loc[:, item], linestyle="None", marker='.')
# or df_month or df_week or df_hour
how to make a the x-axis index as the format that I want?
I want it to be printed as hour:minute
for last hour, or day hour:minute
for last day.
I tried the links, but none of them helped:
Я пробовал
self.canvas.axes.xaxis.set_major_formatter(self.major_formatter, self.canvas.axes.get_xticklabels())
@ticker.FuncFormatter
def major_formatter(x, pos):
return datetime.datetime.fromtimestamp(x.day / 1e3)
, но он вернул int46
в переменной x
, поэтому это не помогло.