Как визуализировать временные ряды с помощью сюжета? - PullRequest
1 голос
/ 26 марта 2020

У меня есть набор данных, который содержит две переменные: clicks (объект) и session_time (datetime64 [нс]) .

Я пытаюсь построить временной ряд, используя график. Но вывод выглядит довольно странно, и я не мог найти причину.

Вот код, который я пытаюсь построить:

import plotly.offline as pyo
import plotly.graph_objs as go
import numpy as numpy

trace = go.Scatter(x=list(df.session_time),
                   y=list(df.clicks), line=dict(color='red'))

dat = [trace]
layout = dict(
    title='Clicks on books',
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(step='all')
            ])
        ),
        rangeslider=dict(
            visible = True
        ),
        type='date'
    )
)

fig = dict(data=dat, layout=layout)
pyo.iplot(fig)

А здесь вывод: enter image description here

Любая идея чего мне не хватает?

1 Ответ

1 голос
/ 26 марта 2020

go.Scatter выводит ваши данные в виде диаграммы рассеяния, а поскольку ваши данные даты и времени не в порядке, они выводят их в неправильном порядке. После преобразования столбца session_time в дату и время его сортировка по

df.sort_values(by=['session_time'], inplace=True)

решит вашу проблему. Возможно, это не самое элегантное решение, но оно работает.

Sorted Datetime

...