这与this问题类似。 这里我有一个带有日期索引的数据框,我想在一个范围内绘制条形图,这样我就可以使用底部滑块或缩放来访问其他条形图。
这是我的代码
import pandas as pd
import plotly.offline as py
n = 30
df = pd.DataFrame({"A": list(range(n))},
index=pd.date_range(start="2017-12-01",
periods=n))
data = [{'x': df.index,
'y': df["A"],
'type': 'bar'}]
layout = dict(xaxis=dict(range=[df.index[-10], df.index[-1]]))
fig = dict(data=data, layout=layout)
py.plot(fig)
我可以使用
进行偏移data = [{'x': df.index,
'y': df["A"],
'type': 'bar' ,
'offset': -0.15
}]
但是最后一个柱子没有被绘制,甚至刻度也是偏移的。
答案 0 :(得分:2)
我是故事情节的新手,但我推断条形图以刻度线(日期)为中心,因此情节实际上显示了您指定的范围。 (我同意这在某种程度上是一种令人惊讶的行为,在美学上。)您可以通过使用pandas.tseries.offsets.DateOffset
更改显示的范围来显示整个栏:https://pandas.pydata.org/pandas-docs/stable/timeseries.html#dateoffset-objects
import pandas as pd
import plotly.offline as py
from pandas.tseries.offsets import *
n = 30
df = pd.DataFrame({"A": list(range(n))},
index=pd.date_range(start="2017-12-01",
periods=n))
data = [{'x': df.index,
'y': df["A"],
'type': 'bar'}]
layout = dict(xaxis=dict(range=[df.index[-10] + DateOffset(hours = -12), df.index[-1] + DateOffset(hours = 12)]))
fig = dict(data=data, layout=layout)
py.plot(fig)