Plotly:向条形图添加阴影阈值
Plotly: adding a shaded threshold to a bar plot
我在 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()
我希望能够添加一些阴影 'thresholds',类似于以下内容:
阈值为:
- 绿色:大于 5,000
- 黄色:大于 2,200 且小于 5,000
- 红色:小于 2,200
这类似于 Matplotlib
中的 fill_between
方法。
这在 Plotly 中可行吗?
谢谢!
在图形创建和 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。
这种情况最好使用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)
我在 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()
我希望能够添加一些阴影 'thresholds',类似于以下内容:
阈值为:
- 绿色:大于 5,000
- 黄色:大于 2,200 且小于 5,000
- 红色:小于 2,200
这类似于 Matplotlib
中的 fill_between
方法。
这在 Plotly 中可行吗?
谢谢!
在图形创建和 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。
这种情况最好使用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)