【发布时间】:2021-01-09 01:59:30
【问题描述】:
财务时间序列通常充满缺失数据。开箱即用,只需显示如下所示的行,即可直观地处理缺少时间戳的系列。但这里的挑战是,将时间戳解释为一个值,并在图中插入所有缺失的日期。
大多数时候,我发现完全去掉这些日期会更好看情节。 https://plotly.com/python/time-series/#hiding-weekends-and-holidays 下的 plotly 文档中的一个示例显示了如何处理 一些 日期类别的缺失日期,例如周末或节假日,使用:
fig.update_xaxes(
rangebreaks=[
dict(bounds=["sat", "mon"]), #hide weekends
dict(values=["2015-12-25", "2016-01-01"]) # hide Christmas and New Year's
]
)
这里的缺点是您的数据集也可能会丢失任何其他工作日的一些数据。当然,您必须为不同国家/地区指定假期的给定日期,那么还有其他方法吗?
可重现的代码:
import pandas as pd
import numpy as np
import plotly.graph_objects as go
# data
np.random.seed(1234)
n_obs = 15
frequency = 'D'
daterange = pd.date_range('2020', freq=frequency, periods=n_obs)
values = np.random.randint(low=-5, high=6, size=n_obs).tolist()
df = pd.DataFrame({'time':daterange, 'value':values})
df = df.set_index('time')
df.iloc[0]=100; df['value']=df.value.cumsum()
# Missing timestamps
df.iloc[2:5] = np.nan; df.iloc[8:13] = np.nan
df.dropna(inplace = True)
# plotly figure
fig=go.Figure(go.Scatter(x=df.index, y =df['value']))
fig.update_layout(template = 'plotly_dark')
fig.show()
【问题讨论】:
标签: python plotly plotly-python