如何在 Plotly 中的特定条形之间添加间隙

How to add a gap between specific bars in Plotly

我使用 Plotly Express 从 px.bar(...) 生成了以下条形图:

我想在 10 条和“全部”条之间添加一个垂直间隙以区分“全部”条。有没有办法在 Plotly 中做到这一点?

据我所知,没有直接的方法可以做到这一点。作为替代解决方案,我会考虑拆分数据并将您的数字设置为两个 subplots。您需要添加一些自定义项,例如 shared_xaxes=True,并通过 row_heights=[0.2, 0.8] 调整行高以适合您的用例。使用内置数据集 px.data.tips 下面的代码片段使用类似这样的方法生成以下图:

完整代码:

import plotly.express as px
from plotly.subplots import make_subplots
from itertools import cycle

df = px.data.tips()

fig1 = px.bar(df[df.day != 'Sun'], x="total_bill", y="day", orientation='h')
fig2 = px.bar(df[df.day == 'Sun'], x="total_bill", y="day", orientation='h')

f = fig2.full_figure_for_development(warn=False)

fig = make_subplots(rows=2, cols=1, shared_xaxes=True, row_heights=[0.2, 0.8])
fig.update_layout(template = 'plotly_white')
fig.update_xaxes(showgrid = False)

fig.add_traces(fig2.data, 1, 1)
fig.add_traces(fig1.data, 2,1)
fig.show()