如何在 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]})
当 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
创建 borderimport 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]})