如何在 plotly 中显示零值的条形图?

How do I display bar plot for values that are zero in plotly?

当 y 的其中一个值为零时,如何使条形出现?默认情况下它只是留下一个空白。有没有办法让它能够绘制零值?如果只是使用 go.Box 绘制,我可以在 y=0 处看到 x 轴上的一条线。我也想在条形图中看到这一点。 到目前为止,我将基数设置为零。但这也不适用于 y=0。 这是我的示例代码。我的实际代码包含多条轨迹,这就是为什么我想看到 y=0 的情节 这是示例 python 代码:

 import plotly.graph_objects as go
 fig = go.Figure()
 fig.add_trace(go.Bar(x=[1, 2, 3], y=[0, 3, 2]))
 fig.show()

条形图在条形周围有一条线,默认设置为与背景颜色相同的颜色。在你的情况下 '#E5ECF6'。如果您更改它,该线将显示为每个栏周围的边框,即使 y = 0 对于任何给定的 x.

也将保持可见
fig.update_traces(marker_line_color = 'blue', marker_line_width = 12)

如果您将线条颜色设置为与条形本身相匹配,您将得到:

绘图 1:具有相同填充和线条颜色的条形图

如果我没理解错的话,这应该与您要实现的目标非常接近。至少在视觉上。我可能会考虑稍微调整一下 yaxis range 以使其更清楚显示的 y 值实际上是 0.

绘图 2:调整后的 y 轴和单独的颜色

情节 1 的完整代码:

import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(x=[1, 2, 3], y=[0, 3, 2], marker_color = 'blue'))
fig.update_traces(marker_line_color = 'blue', marker_line_width = 12)
fig.show()

情节 2 的完整代码:

import plotly.graph_objects as go
fig = go.Figure()
fig.add_trace(go.Bar(x=[1, 2, 3], y=[0, 3, 2], marker_color =  '#00CC96'))
f = fig.full_figure_for_development(warn=False)
fig.update_traces(marker_line_color = '#636EFA', marker_line_width = 4)

fig.update_yaxes(range=[-1, 4])
fig.show()

评论后编辑

只是为了验证线条颜色与使用plotly版本的背景颜色相同5.4.0

地块 1:

情节 2:放大

可以使用 marker

创建 border
import plotly.graph_objects as go

fig = go.Figure()
fig.add_trace(go.Bar(x=[1, 2, 3], y=[0, 3, 2])).update_traces(
    marker={"line": {"width": 3, "color": "rgb(0,0,0)"}}
).update_layout(yaxis={"range": [-1, 4]})