【问题标题】:How do I add a series of boxplots on x-axis with dates?如何在 x 轴上添加一系列带日期的箱线图?
【发布时间】:2022-08-18 17:27:37
【问题描述】:

我想添加与一组日期相对应的 x 轴的箱线图。

这是我的代码-

fig = make_subplots(rows = 2, columns = 1)
fig.add_trace(go.Scatter(x = df[\'Date\'], y = df[\'Measure\']), 
row = 1, col = 1)

fig.add_trace(go.Box(y=[
        [ 0 ],
        [ 0 ],
        [ 0 ]
      ], name=\"Precompiled Quartiles\",
     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()

我试过x = x0 = 并提供了一系列日期,但都没有奏效。现在,x 轴标记为 0、1 和 2,并使用我在上面放置的代码。

    标签: python python-3.x plotly plotly-dash dashboard


    【解决方案1】:

    如果我理解您的要求,您希望在 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()
    

    阴谋

    【讨论】:

    • 我有一个 sub_plot 并且由于某种原因 x 轴不适用于子图,我更新了问题中的代码以反映情况 -
    • @Cauder - 更新代码以将日期显示为子图的一部分。检查下编辑部分
    猜你喜欢
    • 2020-12-02
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-29
    • 2019-09-03
    • 2022-11-03
    相关资源
    最近更新 更多