如果我理解您的要求,您希望在 x 轴而不是 0、1、2 中显示日期。您可以通过简单地使用x=[dates...] 并在go.Box() 中使用它来做到这一点。如果您有日期(日期时间格式),您可以使用 strftime 将其转换为字符串。
x=['01/01/2022', '02/02/2022', '03/03/2022']
fig = go.Figure()
fig.add_trace(go.Box(x=x, y=[
[ 0 ],
[ 0 ],
[ 0 ]
], name="Precompiled Quartiles"))
fig.update_traces(q1=[ 1, 2, 3 ], median=[ 4, 5, 6 ],
q3=[ 7, 8, 9 ], lowerfence=[-1, 0, 1],
upperfence=[5, 6, 7])
fig.show()
...会给你
编辑根据最近的评论,创建子图并显示箱线图的日期。我希望这能解决您的问题。 here 有一些很好的例子,说明一切皆有可能。
从您更新的代码中,我了解到您想要创建 2 个子图,一个在另一个之下。第一个是散点图,第二个是箱线图,您需要日期显示在 x 轴上,而不是 0、1、2。这里也是一样的。
散点图数据
>> df
Date Measure
0 2022-04-09 00:00:00 75
1 2022-04-09 12:00:00 75
2 2022-04-10 00:00:00 75
3 2022-04-10 12:00:00 75
4 2022-04-11 00:00:00 78
5 2022-04-11 12:00:00 78
6 2022-04-12 00:00:00 81
7 2022-04-12 12:00:00 81
8 2022-04-13 00:00:00 81
9 2022-04-13 12:00:00 81
更新代码
x=['01/01/2022', '02/02/2022', '03/03/2022']
fig = make_subplots(rows = 2, cols = 1)
fig.add_trace(go.Scatter(x = df['Date'], y = df['Measure']), row = 1, col = 1)
fig.add_trace(go.Box(x=x, y=[
[ 0 ],
[ 0 ],
[ 0 ]
], name="Precompiled Quartiles"),
row=2, col=1)
fig.update_traces(q1=[ 1, 2, 3 ], median=[ 4, 5, 6 ],
q3=[ 7, 8, 9 ], lowerfence=[-1, 0, 1],
upperfence=[5, 6, 7],
row=2, col=1)
fig.show()
阴谋