Plotly:防止条形图上的条形图基于背景色更改颜色

2024-09-27 02:24:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Pandas dataframedf中有一组销售数据,看起来类似于以下内容:

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.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)

fig.show()

enter image description here

如您所见,当蓝色垂直条与红色背景色组合时,会变成紫色

一种解决方法可能是先绘制红色、绿色和黄色背景色,然后再覆盖蓝色条。这样,我们就不会“混合”红色和蓝色,从而形成紫色

这可能吗?还有其他更好的解决方案吗

谢谢


Tags: 数据importadddatelinefigwidth蓝色
1条回答
网友
1楼 · 发布于 2024-09-27 02:24:57

可以选择将layer='below'添加到add_hrect

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

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

相关问题 更多 >

    热门问题