【问题标题】:How to visualize time series with plotly?如何用 plotly 可视化时间序列?
【发布时间】:2020-07-07 00:16:27
【问题描述】:

我有一个包含两个变量的数据集:clicks(object)session_time(datetime64[ns])

我正在尝试使用 plotly 来绘制时间序列。但是输出看起来很奇怪,我找不到原因。

这是我要绘制的代码:

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)

这里的输出是:

知道我错过了什么吗?

【问题讨论】:

  • 您能分享更多关于您的数据的信息吗?你是怎么导入的?
  • 请问如何共享数据样本?我已经像这样导入了数据: df = pd.read_csv('clicks.csv') @lincolnck
  • 用pandas导入数据后,clickssession_time的数据类型是什么?他们是class 'pandas.core.series.Series'
  • 通过对您的时间数据进行排序,我得到了它的工作。转换为日期时间后尝试添加它。 df.sort_values(by=['session_time'], inplace=True)

标签: python jupyter-notebook time-series plotly


【解决方案1】:

go.Scatter 正在将您的数据绘制为散点图,并且由于您的日期时间数据无序,因此将其绘制为无序。 将您的session_time 列转换为日期时间后,按

对其进行排序

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

将解决您的问题。这可能不是最优雅的解决方案,但它确实有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-17
    • 2016-04-10
    • 2018-03-17
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    相关资源
    最近更新 更多