jupyter notebook 5.2.2
Python 3.6.4
pandas 0.22.0
matplotlib 2.2.2
Привет. Я пытаюсь представить и отформатировать гистограмму в блокноте Jupyter на основе данных журнала часов и минут, полученных из хранилища hadoop с использованием Hive SQL.
У меня проблемы с презентацией.Я хотел бы иметь возможность устанавливать оси с 00:00 до 23:59, так как корзины начинаются с нуля и заканчиваются на следующей минуте.Я хотел бы получасовые отметки.Я просто не могу понять, как это сделать.
Ниже приведены данные за 2 года с 1440 строками и общим количеством событий в каждую минуту.
%%sql -o jondat
select eventtime, count(1) as cnt
from logs.eventlogs
group by eventtime
Данные хранятся в виде строки, но отображаются в часах и минутах hh:mm
, однако, как представляется, они автоматически преобразуются ноутбуком в sysdate плюс timestamp, я воспроизводил данные в этомформат и др.
Если я удаляю двоеточия, я получаю
df.dtypes
eventtime int64
cnt int64
, и если я использую фиктивный наполнитель как трубу, я получаю
eventtime object
cnt int64
Если яоставив двоеточие с двоеточиями, я получаю
eventtime datetime64
cnt int64
, который я сейчас использую.
...
2018-11-22 00:27:00 32140
2018-11-22 00:28:00 32119
2018-11-22 00:29:00 31726
...
2018-11-22 23:30:00 47989
2018-11-22 23:31:00 40019
2018-11-22 23:32:00 40962
...
Затем я могу построить данные
%%local
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import datetime as dt
import mateplotlib.dates as md
xtformat = md.DateFormatter('%H:%M')
plt.rcParams['figure.figsize'] = [15,10]
df = pd.DataFrame(jondat)
x=df['eventtime']
b=144
y=df['cnt']
fig, ax=plt.subplots()
ax.xaxis_date()
ax.hist(x,b,weights=y)
ax.xaxis.set_major_formatter(xtformat)
plt.show(ax)
В настоящее времямои оси начинаются задолго до и после данных, а срезы центрируются в течение минуты, что является большей болью, если я изменяю количество бинов.Я не вижу, где остановить автоматическое преобразование строки в дату и время, и я не уверен, что мне нужно, чтобы получить желаемый результат.
Речь идет о форматировании времени события и установкеоси или я могу просто установить оси независимо от типа данных.В идеале помеченные тики должны быть удобными для пользователя
Это график, который я получаю с 144 корзинами.Поскольку некоторые записи журнала являются ручными, бинарная диаграмма 1440 является «волосатой» из-за тенденции к округлению ручных записей.Одна из вещей, с которыми я экспериментирую, - это разное количество бинов.