【问题标题】:Plotly: adding a shaded threshold to a bar plotPlotly:向条形图添加阴影阈值
【发布时间】:2021-03-11 02:41:06
【问题描述】:

我在 Pandas 数据框 df 中有一个销售数据集,类似于以下内容:

import pandas as pd

df = pd.DataFrame({'date':['2021-01-04', '2021-01-05', '2021-01-06', '2021-01-07', '2021-01-08', '2021-01-11', '2021-01-12', '2021-01-13', '2021-01-14', '2021-01-15'],
                  'sales':[1500, 2000, 1300, 2700, 1800, 4500, 2600, 2750, 8000, 1300]})

    date          sales
0   2021-01-04    1500
1   2021-01-05    2000
2   2021-01-06    1300
3   2021-01-07    2700
4   2021-01-08    1800
5   2021-01-11    4500
6   2021-01-12    2600
7   2021-01-13    2750
8   2021-01-14    8000
9   2021-01-15    1300

我把这个数据画出来,如下:

import plotly.express as px

fig = px.bar(df, x='date', y='sales')
fig.show()

我希望能够添加一些阴影“阈值”,类似于以下内容:

阈值是:

  • 绿色:大于 5,000
  • 黄色:大于 2200 小于 5000
  • 红色:小于 2,200

这类似于Matplotlib 中的fill_between 方法。

这在 Plotly 中可行吗?

谢谢!

【问题讨论】:

    标签: python plotly plotly-dash plotly-python


    【解决方案1】:

    在这种情况下最好使用add_hrect()

    fig.add_hrect(y0=0, y1=2200, line_width=0, fillcolor="red", opacity=0.25)
    fig.add_hrect(y0=2200, y1=5000, line_width=0, fillcolor="yellow", opacity=0.25)
    fig.add_hrect(y0=5000, y1=10000, line_width=0, fillcolor="green", opacity=0.25)
    

    【讨论】:

      【解决方案2】:

      在图形创建和 fig.show() 之间添加:

      fig.add_shape(type="rect", line_width=0,
          xref="x domain",
          x0=0, x1=1, y0=0, y1=2200,
          fillcolor="Red", opacity=0.25,
      )
      

      这将为您提供红色矩形,您可以根据需要通过调整填充颜色和不透明度以及 y0 和 y1 来相应地添加其他矩形。

      注意 x0 和 x1 如何以 0 到 1 的相对坐标给出以跨越整个图形(因为 xref="x 域"),但 y0 和 y1 使用绝对值。

      如需进一步参考,请参阅Plotly docs on Shapes

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-13
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        • 2015-11-03
        • 1970-01-01
        相关资源
        最近更新 更多