gpt4 book ai didi

python - 日期绘图似乎在破折号绘图框架中被破坏

转载 作者:行者123 更新时间:2023-11-28 17:15:08 25 4
gpt4 key购买 nike

我正在尝试在破折号环境中绘制水平条形图,但是虽然我可以绘制天数或数字等元素,但我无法获得正确的范围。换言之,开始日期正确但结束日期不正确。

def build_data(contract_name, stream): # one stream only
data = []
month_list = sorted([z['month'] for z in stream['monthList']])
month_list = [datetime.datetime.strptime(month, '%Y-%m-%d') for month in month_list]
print month_list

min_month = min(month_list)
max_month = max(month_list)

start = go.Bar(x=[min_month], y=[contract_name], orientation = 'h', marker=dict(color='rgba(1,1,1, 0.0)'))
end = go.Bar(x=[max_month], y=[contract_name], orientation = 'h', marker=dict(color='rgba(55, 128, 191, 0.7)',
line=dict( color='rgba(55, 128, 191, 1.0)', width=2,)))
data.append(start)
data.append(end)
return data


def plot_bar(data):
app.layout = html.Div(children=[html.H1(children=''), html.Div(children='''History.'''),

dcc.Graph(
figure=go.Figure(
data = data,
layout=go.Layout(title='', showlegend=False, barmode='stack', margin=go.Margin(l=200, r=0, t=40, b=20))),
style={'height': 300},
id='my-graph')
])


if __name__ == '__main__':
data = build_data('xxx', example_stream)
plot_bar(data)
print data
app.run_server(debug=True)

和输入数据:

example_stream={'status': 'active', 'monthList': [{'month': '2017-04-01'}, {'month': '2017-06-01'}]}

最重要的方面是有两个日期:'2017-05-01' 和 '2017-04-01',转换为 python 日期对象。然而,绘制了下限,但结束柱在未来的某个时间结束。

我用非日期数据检查了这些例程,它的行为符合预期。

我把图表放在下面:Horizontal axis is way off

最佳答案

也许第二个日期应该是时间延迟,而不是日期时间。在 Python 内部,日期时间对象被引用为 1970 年 1 月 1 日(参见 Unix Time )。那是大约 47 年前的事了。您的条形图的开始和结束之间的差异看起来是在这个顺序上,所以我认为它对结束日期的解释是错误的。

也许试试:

max_month = max(month_list) - min_month

看看是否有帮助。

关于python - 日期绘图似乎在破折号绘图框架中被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44725692/

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