Plotly/Dash中如何让柱状图轨迹置于散点图轨迹下方?
解决Plotly/Dash中柱状图始终覆盖散点图的问题
这个问题其实是Plotly的默认渲染规则导致的——柱状图(go.Bar)默认的渲染层级比散点图更高,所以哪怕你调整data列表里轨迹的顺序,柱状图还是会“压”在散点图上面。不过我们可以通过手动设置轨迹的layer属性来打破这个默认规则。
两种可行的解决方案:
方案一:让散点图强制显示在最上层
在你的go.Scatter配置里添加layer='above'参数,这样不管其他轨迹的层级如何,散点图都会被渲染在最顶部:go.Scatter( x=list(dfN['DATE']), y=list(dfN['VALUE']), text=list(dfN['VALUE'].round(decimals=3)), hoverinfo='text+name', name='Scatter N', mode='lines+markers', marker=dict( color='rgb(230,159,0)', size=15, opacity=0.8 ), layer='above' # 新增这一行,强制散点图在上层 )方案二:把柱状图放到下层
如果你不想修改散点图的配置,也可以给柱状图(go.Bar)添加layer='below'参数,让它主动“躲”在其他轨迹下面:go.Bar( x=list(df_bar['DATE']), y=list(df_bar['VALUE']), name='Bar Chart', layer='below' # 新增这一行,让柱状图在下层 )
关于layer属性的小说明:
Plotly的轨迹layer参数有三个可选值:
'auto':默认值,根据轨迹类型自动决定层级(这就是为什么柱状图默认在上)'above':强制该轨迹显示在所有其他轨迹之上'below':强制该轨迹显示在所有其他轨迹之下
这样设置后,你就能按照自己的需求控制轨迹的显示层级啦!
内容的提问来源于stack exchange,提问作者RagingRoosevelt
相关产品推荐
相关产品推荐

