Plotly 未显示所有数据
Posted
技术标签:
【中文标题】Plotly 未显示所有数据【英文标题】:Plotly is not showing all data 【发布时间】:2019-05-22 16:25:00 【问题描述】:尝试使用mathplotlib
和plotly
绘制相同数据时,我得到了不同的结果。 Plotly
没有显示整个数据范围。
import plotly.plotly as py
import plotly.graph_objs as go
# filter the data
df3 = df[df.line_item_returned==0][['created_at', 'line_item_price']].copy()
# remove the time part from datetime
df3.created_at = df3.created_at.dt.floor('d')
# set the datatime column as index
df3 = df3.set_index('created_at')
# Create traces
trace0 = go.Scatter(
x = df3.index,
y = df3.line_item_price.resample('d').sum().rolling(90, center=True).mean(),
mode = 'markers',
name = 'markers'
)
data = [trace0]
py.iplot(data, filename='scatter-mode')
图表仅显示 2018 年 10 月至 12 月的范围。
用matplotlib
绘制相同的数据显示整个数据范围2016-2018:
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(df3.line_item_price.resample('d').sum().rolling(90, center=True).mean())
该索引包含 2016-2018 年的所有数据:
df3.line_item_price.resample('d').sum().rolling(31, center=True).mean().index
DatetimeIndex(['2015-11-18', '2015-11-19', '2015-11-20', '2015-11-21',
'2015-11-22', '2015-11-23', '2015-11-24', '2015-11-25',
'2015-11-26', '2015-11-27',
...
'2018-12-10', '2018-12-11', '2018-12-12', '2018-12-13',
'2018-12-14', '2018-12-15', '2018-12-16', '2018-12-17',
'2018-12-18', '2018-12-19'],
dtype='datetime64[ns]', name='created_at', length=1128, freq='D')
为什么会这样?
【问题讨论】:
什么是df3.index
len(df3.index)
返回 19856
【参考方案1】:
我猜这是索引的问题。
%matplotlib inline
import plotly.offline as py
import plotly.graph_objs as go
import pandas as pd
import numpy as np
N = 2000
df = pd.DataFrame("value":np.random.randn(N),
index=pd.date_range(start='2015-01-01', periods=N))
# you don't really need to us `plt`
df.resample('d').sum().rolling(90, center=True).mean().plot();
但是如果你想使用plotly
,你应该使用重新采样的Series
中的索引。
df_rsmpl = df.resample('d').sum().rolling(90, center=True).mean()
trace0 = go.Scatter(x = df_rsmpl.index,
y = df_rsmpl["value"])
data = [trace0]
py.iplot(data)
【讨论】:
以上是关于Plotly 未显示所有数据的主要内容,如果未能解决你的问题,请参考以下文章