gpt4 book ai didi

python - 具有日期范围的条形图在绘图中剪切条形图

转载 作者:行者123 更新时间:2023-12-01 02:19:23 25 4
gpt4 key购买 nike

这与 this 类似的问题问题。这里我有一个带有日期索引的数据框,我只想在一个范围内绘制条形图,以便我可以使用底部 slider 或缩放来访问其他条形图。

这是我的代码

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)

正如您所看到的,第一个和最后一个栏被切成两半。 enter image description here

我可以使用偏移来玩

data = [{'x': df.index,
'y': df["A"],
'type': 'bar' ,
'offset': -0.15
}]

但是最后一个柱形图并未绘制,甚至连刻度线也发生了偏移。

最佳答案

我是绘图新手,但我推断条形图以刻度(日期)为中心,因此绘图实际上显示了您指定的范围。 (我同意这在美学上有点令人惊讶。)您可以通过使用 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)

输出: figure

关于python - 具有日期范围的条形图在绘图中剪切条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48098331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com